Добавление состояния фокусировки в div внутри ссылки

#html #css #focus #accessibility #pseudo-class

Вопрос:

Я пытаюсь сделать так, чтобы ссылка имела состояние фокуса вокруг всего div .container-covid-alert, когда ссылка вставлена, я уверен, что это должно быть возможно? Следующие 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> 

Комментарии:

1. Трудно понять, чего именно вы хотите.

Ответ №1:

Ваша гиперссылка сворачивается, поскольку она ведет себя как встроенный элемент.

Решение состоит в том, чтобы заставить его действовать как элемент блока с. display: block;

Таким образом, вы можете просто добавить :focus состояние в саму гиперссылку и сделать это действительно просто.

Кроме того, оранжевый индикатор фокусировки недостаточно контрастен — он составляет всего 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>