Что делает[href^="..."] в CSS?
я использовал CSS раньше, и я столкнулся с нижеприведенным стилем CSS, не имею понятия, что он делает.
a[href^="http:"] {
background: url(img/keys.gif) no-repeat right top;
}
a[href^="http://mysite.com"], a[href^="http://www.mysite.com"] {
background-image: none; padding-right:0;
}
6 ответов
a[href^="http:"]
выбирает <a>
элемент которого href
значение атрибута начинается с http:
.
например:
p[title^="para"] {background: green;}
будет соответствовать следующее:
<p title="paragraph"> This paragraph should have a green background. </p>
это один из подстрока-соответствующие селекторы атрибутов доступно в CSS3. Он соответствует ссылкам с href
атрибуты, значения которых начинаются с данной строкой.
чтобы проиллюстрировать, мы возьмем Ваш пример CSS и добавим некоторые значения по умолчанию:
a {
background: none; padding: 0 1em;
}
a[href^="http:"] {
background: url(img/keys.gif) no-repeat right top;
}
a[href^="http://mysite.com"], a[href^="http://www.mysite.com"] {
background-image: none; padding-right:0;
}
и стиль следующего HTML с ним. Выходные стили суммируются в комментариях:
<ul>
<!-- [1] No background, 1em left and right padding -->
<li><a href="/index.php">My site's page</a></li>
<!-- [2] Background, 1em left and right padding -->
<li><a href="http://example.com">External link</a></li>
<!-- [3] No background, no right padding -->
<li><a href="http://mysite.com">My site's base URL without www</a></li>
<!-- [4] No background, no right padding -->
<li><a href="http://www.mysite.com">My site's base URL with www</a></li>
<!-- [5] No background, no right padding -->
<li><a href="http://mysite.com/page.php">A page in my site with base URL</a></li>
</ul>
что происходит?
-
выбранный
a
только
Этот элементhref="/index.php"
атрибут не начинается сhttp:
или другие ценности.нет фона, но есть левая и правая обивка.
-
выбран
a[href^="http:"]
только
Этот элемент начинается сhttp:
но не начинается сhttp://mysite.com
.есть как левая, так и правая обивка, а также фон изображение.
-
выбран
a[href^="http:"]
иa[href^="http://mysite.com"]
Этот элемент начинается сhttp:
и далее начинается сhttp://mysite.com
.поскольку второй селектор отменяет первый селектор, фоновое изображение и правое заполнение удаляются.
-
выбран
a[href^="http:"]
иa[href^="http://www.mysite.com"]
Этот элемент начинается сhttp:
и далее начинается сhttp://www.mysite.com
(обратите внимание на www).поскольку второй селектор отменяет первый селектор, фоновое изображение и правое заполнение удаляются.
-
выбран
a[href^="http:"]
иa[href^="http://mysite.com"]
Этот элемент начинается сhttp:
и далее начинается сhttp://mysite.com
.обратите внимание, что по сравнению с третьей ссылкой атрибут в этом содержит больше, чем просто базовый URL; однако
^=
указывает, что значение атрибута просто должно быть начнем с базовый URL вашего сайта, в отличие от=
что будет означать " выберите ссылки, которые указывают только наhttp://mysite.com
". Таким образом, эта ссылка соответствует второму селектору.поскольку второй селектор отменяет первый селектор, фоновое изображение и правое заполнение удаляются.
это атрибут-начинается-с селекторов, они выберите <a>
элементы с начиная с этого значения, например a[href^="http:"]
соответствует любым якорям с href
начиная с href="http:...."
, например:
<a href="http://www.google.com">Test</a> <!-- would match -->
<a href="#element">Test</a> <!-- wouldn't match -->
для каждой ссылки, параметр которой" href "начинается с" http:", установите фон на ключевое изображение (без повторения, расположенное в правом верхнем углу).
для каждой ссылки, которая является параметром" href", начинается с "http://mysite.com" или "http://www.mysite.com", установите фоновое изображение в ничто (и правое заполнение в 0).
для меня это похоже на умный трюк CSS, который заставит ваших пользователей знать, когда они покидают ваш сайт через внешняя ссылка путем отображения ключевого изображения.
(Я думаю, я буду использовать его в будущем. :)
правила говорят, согласно консорциум W3C документы:
- все якоря, которые имеют начинается с
http:
- все якоря, которые имеют
href
атрибут, который начинается сhttp://mysite.com
илиhttp://www.mysite.com
это селектор атрибутов.
The ^= часть означает, что атрибут href якорь теги начать С http:
в первом примере.