Есть ли css-версия целевого атрибута, например, вместо написания
<a href="example.php" target="something">Link</a>
я мог бы написать:
<style type="text/css">
a { target:something; }
</style>
Вы не можете на данный момент, но был разработан рабочий проект W3C под названием CSS3 Hyperlink Presentation Module, который теперь оставлен. Он определяет свойство CSS с именем target
которое предназначено для замены атрибута HTML, и на самом деле является более конкретным и позволяет делать больше, чем старая target
HTML. К сожалению, как я знаю, ни один браузер не пытался его реализовать, я думаю, что причина отказа. Однако в будущем можно было бы предложить еще раз (надеюсь, по крайней мере).
Нет, нет.
Во-первых, target
- это атрибут HTML, а не свойство стиля CSS. CSS не может изменять или создавать новый атрибут. Однако вы можете a
все элементы, которые имеют атрибуты цели с помощью селектора:
a[target] {
...
}
Как заявили другие, пока еще нет способа сделать это с помощью 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');
}
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>