问题描述
我正在尝试使链接在整个 .container-covid-alert div 周围具有焦点状态,当链接被标记到时,我确定这一定是可能的吗?以下 2 个选择器不起作用。
.container-covid-alert:focus {
outline: solid 3px #FFAD16;
}
.container-covid-alert a:focus {
outline: solid 3px #FFAD16;
}
.container-covid-alert {
background-color: #206497 !important;
color: #FFFFFF;
padding-top: 10px;
padding-bottom: 10px;
display: block;
flex-flow: row wrap;
align-items: center;
align-content: center;
justify-content: flex-start;
font-size: 1.1rem;
}
.container-covid-alert a {
color: #FFFFFF;
}
.covid-inner {
margin: auto;
width: 1170px;
}
<a id="covid-banner-link" title="Coronavirus" class="sys_16" href="/">
<div class="container-covid-alert">
<div class="covid-inner">
<p>Coronavirus (COVID-19)updates and advice.</p>
</div>
</div>
</a>
解决方法
您的超链接会折叠,因为它表现为内联元素。
解决方案是让它像一个带有 display: block;
的块元素。
这样您就可以将 :focus
状态添加到超链接本身并使其变得非常简单。
也是一个 orange focus indicator is not high enough contrast - 它只有 1.86:1,您至少需要 3:1,因此您可能想要更改它。
#covid-banner-link{
display:block;
}
#covid-banner-link:focus {
outline: solid 3px #FFAD16;
}
.container-covid-alert {
background-color: #206497 !important;
color: #FFFFFF;
padding-top: 10px;
padding-bottom: 10px;
display: block;
flex-flow: row wrap;
align-items: center;
align-content: center;
justify-content: flex-start;
font-size: 1.1rem;
}
.container-covid-alert a {
color: #FFFFFF;
}
.covid-inner {
margin: auto;
width: 1170px;
}
<a id="covid-banner-link" title="Coronavirus" class="sys_16" href="/">
<div class="container-covid-alert">
<div class="covid-inner">
<p>Coronavirus (COVID-19)updates and advice.</p>
</div>
</div>
</a>