Несколько оттенков подчеркивания в одном якоре
Я хотел бы, в пределах одного якоря </a>
, иметь два разных цвета подчеркивания. Например:
<a href="somehref">
<span>This text should underline RED on `a` hover</span>
<span>This text should underline GREY on `a` hover</span>
</a>
Я могу добавить text-decoration
в каждый диапазон при наведении, но это заставляет каждую линию зависать индивидуально. Я хочу это так, чтобы, когда я навешивался где-нибудь в </a>
, оба пробела подчеркивают свой шрифт color
унаследованный.
Возможно ли это?
Примечание. Я знаю text-decoration-color
, но из-за поддержки ограничения я не могу его использовать.
Ответы
Ответ 1
Что-то вроде этого? Вы можете использовать псевдо-класс anchor :hover
CSS, чтобы создать его дочерний и потоковый.
Вот ссылка на CSS child и descendant.
a {
color: black;
text-decoration: none;
}
a span:first-child {
color: red;
}
a span:last-child {
color: grey;
}
a:hover span {
text-decoration: underline;
}
<a href="somehref">
<span>This text should underline RED on `a` hover</span>
<span>This text should underline GREY on `a` hover</span>
</a>
Ответ 2
Вы пробовали это?
a:hover span {
text-decoration: underline; }
text-decoration: underline
автоматически наследует цвет шрифта, поэтому, если ваши интервалы уже имеют серый/красный цвет, все, что вам нужно сделать, это подчеркнуть их при наведении a
Ответ 3
Вы также можете попробовать это. если существует так много элементов span
a{
text-decoration:none;
}
a:hover span:nth-child(1){
border-bottom:1px solid red;
}
a:hover span:nth-child(2){
border-bottom:1px solid grey;
}
<a href="somehref">
<span>This text should underline RED on `a` hover</span>
<span>This text should underline GREY on `a` hover</span>
</a>
Ответ 4
Попробуйте это
a{
text-decoration:none;
}
a:hover #span1{
text-decoration: none;
border-bottom: 1px solid red;
}
a:hover #span2{
text-decoration: none;
border-bottom: 1px solid grey;
}
<a href="somehref">
<span id="span1">This text should underline RED on `a` hover</span><br/>
<span id="span2">This text should underline GREY on `a` hover</span>
</a>
Ответ 5
Я добавил это, чтобы наследовать цвет пролета, который вам нужен, а не использовать HEX
в подчеркивании. Обратите внимание, что это SCSS.
Цветовой модуль CSS - 4.4. ключевое слово currentColor
CSS1 и CSS2 определяют начальное значение свойства border-color для значения свойства цвета, но не определяет соответствующее ключевое слово. Это упущение было признано SVG, и, таким образом, SVG 1.0 ввел значение currentColor для заливки, стоп-цвета, цвета заливки и цвета подсветки.
CSS3 расширяет значение цвета для включения ключевого слова currentColor. разрешить его использование со всеми свойствами, которые принимают значение. Эта упрощает определение этих свойств в CSS3.
Скриншот для вас
https://jsfiddle.net/4f0mL136/3/
<a href="somehref">
<span>This text should underline RED on `a` hover</span>
<span>This text should underline GREY on `a` hover</span>
</a>
a {
text-decoration: none;
}
span:last-child {
color: black;
}
span:first-child {
color: red;
}
a:hover {
span {
border-bottom: 1px solid currentColor;
}
}
span { // display purposes
display: block;
border-bottom: 1px solid transparent;
margin-bottom: 10px;
transition: border-bottom .2s ease-in;
}
Ответ 6
есть несколько способов сделать это
лучший способ - создать класс (в CSS) и установить цвет там
второй способ - вставить CSS в html-код
как здесь
.tool1:hover {
background-color:red;
}
.tool2:hover {
background-color:grey;
}
<!DOCTYPE html>
<html>
<style>
</style>
<body style="text-align:center;">
<p>Move the mouse over the text below:</p>
<a href="somehref">
<span class='tool1'>This text should underline RED on `a` hover</span>
<span class='tool2'>This text should underline GREY on `a` hover</span>
</a>
</body>
</html>