Мне нужно изменить элемент a, пока я в элементе b. Могу ли я это сделать, используя только CSS/HTML, это мой вопрос?Могу ли я ввести тег в тег с помощью css
li:active{
img{
border:1px solid black;
}
}
Мне нужно изменить элемент a, пока я в элементе b. Могу ли я это сделать, используя только CSS/HTML, это мой вопрос?Могу ли я ввести тег в тег с помощью css
li:active{
img{
border:1px solid black;
}
}
Нет, что вы можете сделать, однако, быть немного более конкретными с селектором - попробуйте следующее:
li:active img{
border:1px solid black;
}
Bon Voyage!
Вы будете хотеть ...
li:active img {
border:1px solid black;
}
это будет стиль всеimg
элементы в li:active
. Если вы хотите, чтобы стиль немедленные потомков последнего, вам нужно:
li:active > img {
border:1px solid black;
}
Я предлагаю вам прочитать на статью Криса Coyier в «Child and Sibling Selectors», чтобы узнать о более сложных CSS. Кроме того, существуют более сложные селектора CSS на основе позиционных отношений, таких как li:active + img
и li:active ~ img
, но это выходит за рамки этого ответа.
Однако, что вы предлагаете, на самом деле возможно, используя , который является препроцессором CSS.
Вы можете сделать это следующим образом:
li:active img{
border:1px solid black;
}
вы можете использовать селектор потомков: li:active img {boder:1px solid black;}
или селектор ребенка li:active > img {boder:1px solid black;}
если img
является прямым потомком li
CSS3 позволяет Embeded селекторов где есть условие. Пример допустимых вложенных спецификаций CSS3 CSS, используя это:
@media screen and (max-width:800px) {
ul {
float: none;
max-width: auto;
width: auto;
}
div:first-of-type {
display: none;
}
}
условия установлено здесь, чтобы установить такие стили, вложенные когда media
типа screen
(так называемый рабочий стол), и не больше, чем 800px (max-width: 800px
).
Вы можете сделать следующее вместо:
li:active img{
border:1px solid black;
}
Синтаксис вы имеете в виду похож на nested rules в CSS пре-процессоры, такие как LESS. Этот синтаксис не поддерживается изначально браузерами и должен быть скомпилирован в допустимый синтаксис CSS.
#header {
color: black;
.navigation {
font-size: 12px;
}
.logo {
width: 300px;
}
}
становится:
#header {
color: black;
}
#header .navigation {
font-size: 12px;
}
#header .logo {
width: 300px;
}
http://lesscss.org/features/#features-overview-feature-nested-rules
Проблема с 'less' заключается в хорошем определении переменных и, таким образом, ограничении повторения и упрощении изменения, однако это не естественный язык, который интерпретируется непосредственно браузерами, поскольку он должен быть« скомпилирован »для css для во время выполнения. Однако вы правы в сходстве. –
@SanuelJackson Это правильно. Я бы никогда не предлагал обработку на стороне клиента, но я вижу огромные преимущества для предварительного компиляции предварительных процессоров на стороне сервера, таких как LESS/SASS. «dotless», например, это то, что мы используем. http://www.dotlesscss.org/ – Curt
Я не слишком глубоко вырыл слишком малое/маленькое отверстие кролика (время), однако я вижу, что язык определенно полезен , Он бросает Curveball для тех, кто работает со стандартным CSS, но если OP имеет время, это определенно стоит изучить - я сам включил. –
li:active img{
border: 1px solid black;
}
Это правильный ответ, если вы хотите использовать 2 класса или любой другой в 1 пункте вы поместите их в начале , ПРИМЕЧАНИЕ: чтобы объединить 2 элемента, вы делаете это с помощью пробела. Надеюсь, это помогло.
Я не уверен, правильно ли вы поняли, ищете ли вы что-то вроде 'li: active + img {border: 1px solid black;}'? – Nick
http://css-tricks.com/child-and-sibling-selectors/ –
Эй @ Ник спасибо за ваш нисходящий я просто удалил, но я не ошибся. В следующий раз прочитайте ссылку перед тем, как спустить вниз. Ты даже не понял вопроса. – JGallardo