CSS версия целевого атрибута

0

Есть ли css-версия целевого атрибута, например, вместо написания

<a href="example.php" target="something">Link</a>

я мог бы написать:

<style type="text/css">
a { target:something; }
</style>
  • 4
    Нет, нет! И почему таблица стилей сможет установить атрибут?
Теги:

3 ответа

2

Вы не можете на данный момент, но был разработан рабочий проект W3C под названием CSS3 Hyperlink Presentation Module, который теперь оставлен. Он определяет свойство CSS с именем target которое предназначено для замены атрибута HTML, и на самом деле является более конкретным и позволяет делать больше, чем старая target HTML. К сожалению, как я знаю, ни один браузер не пытался его реализовать, я думаю, что причина отказа. Однако в будущем можно было бы предложить еще раз (надеюсь, по крайней мере).

  • 1
    Ответ правильный и полезный, но утверждение «это все еще черновик» является преуменьшением: рабочий проект датирован 24 февраля 2004 года, то есть почти десять лет назад. Это означает, что он был фактически оставлен; на самом деле, страница W3C в CSS содержит список «Abandoned». Но это показывает, что вы не можете делать такие вещи в CSS (если бы вы могли, они бы не пытались определить что-то подобное).
  • 0
    @ JukkaK.Корпела ты прав, я отредактировал ответ, спасибо.
2

Нет, нет.

Во-первых, target - это атрибут HTML, а не свойство стиля CSS. CSS не может изменять или создавать новый атрибут. Однако вы можете a все элементы, которые имеют атрибуты цели с помощью селектора:

a[target] {
...
}
0

Как заявили другие, пока еще нет способа сделать это с помощью CSS.

Способ сделать это с помощью jQuery + css.

Если вы указали все свои ссылки на определенный класс, используйте этот jQuery для установки цели, и если вы хотите установить цель для ВСЕХ ссылок, используйте второй набор кода:

$(document).ready(function(){

    if($('a').hasClass('CLASSNAME')) {
        $(this).attr("target", "TARGET");
    }

}

Если класс не задан и вы хотите, чтобы все ссылки на вашей странице (которые не являются внутренними ссылками) имели заданную цель, используйте следующее:

$(document).ready(function(){

$('a[href^=http]:not([href^=http://YOURSITEURLWITHWWW],[href^=http://YOURSITEURLWITHOUTWWW])')
    .add('a[href^=www]:not([href^=YOURSITEURLWITHWWW])')
        .attr('target','_blank');

}
  • 0
    Не забудьте включить jQuery: <script src="http://code.jquery.com/jquery-1.9.1.js"></script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню