Using CSS Attribute Selectors to Stylize HTML | Style outbound links | Tutorial

    Intro to CSS

    We use css to apply styles to certain elements on the page, we can target any div like this:

    HTML

    <div>Text</div>

    CSS

    div {
    css-property: value;
    }

    Any class selector <div class=”divClass”> like this:

    HTML

    <div class="divClass">Text</div>

    with this:

    CSS

    div.divClass {
    css-property: value;
    }
    <!-- or simply -->
    .divClass {
    css-property: value;
    }

    or any id selector, <div id=”divID”> like this:

    HTML

    <div id="divID">Text</div>

    with this:

    CSS

    div#divID {
    css-property: value;
    }
    <!-- or simply -->
    #divID {
    css-property: value;
    }

    These are the basics of css. Use an element tag name to target it, use a dot to access class names and a hash (#) to represent id names. A lot can be done with just that, but sometimes you may want to access something differently, an option is to use attribute selection.

    Overview

    More advanced we can apply styles to elements based on their attributes. Attribute selectors use the attributes of the tag.
    We can use attribute selection to specify certain elements to stylize. For example if we have a page with many images but only certain ones have title attributes, which we want to stand out more, this css rule would do the trick:

    CSS

    img [title] {
    border: 2px solid #000000;
    }

    It would cause any image with a title tag (no matter what the value of the title tag is) to have a 2px wide solid black border, such as <img title=”MyImage” src=”/images/sample.jpg” /> or <img title=”" src=”/images/sample.jpg” /> but not <img src=”/images/sample.jpg” /> because it has no title attribute.

    HTML

    would style
    <img title="�MyImage�" src="http://circlecube.com/wp-admin/�/images/sample.jpg�" alt="" />
    or even
    <img title="�&quot;" src="http://circlecube.com/wp-admin/�/images/sample.jpg�" alt="" />
    but not
    <img src="http://circlecube.com/wp-admin/�/images/sample.jpg�" alt="" />
    because it has no title attribute.

    Further we can specify which values of the title attribute we want to target. If we want to stylizee links to a certain site we can do this: a[href="http://circlecube.com"] { }

    CSS

    a[href="http://circlecube.com"] {
    background-color: #EBEBEB;
    }

    it would style <a href=”http://circlecube.com”>This link</a> but not <a href=”http://circlecube.com/2008/05/21/”>this one</a> because it is not an exact match, nor <a href=”http://www.google.com”>this one</a> because it isn’t a match either, or at all.

    HTML

    it would style
    <a href="�http://circlecube.com�">This link</a>
    but not
    <a href="�http://circlecube.com/2008/05/21/�">this one</a>
    because it is not an exact match, nor
    <a href="�http://www.google.com�">this one</a>
    because it isn’t a match either, or at all.

    For another example, if we want to stylize local links differently than absolute links, we’d want to look at the beginning of the attribute’s value only so we’d use ‘^=’. We could have something like this:
    a[href^="http://"], a[href^="https://"] {
    background: url(/images/external.gif) no-repeat right center;
    padding-right:20px;
    }
    it would style <a href=”http://www.google.com”>This link</a> because it begins with ‘http://’ but not <a href=”/2008/05/21/”>this one</a> because it is does not begin with ‘http://’. But it would also style <a href=”https://paypal.com”>this</a> because it matches the selector after the comma ‘https://’, and even <a href=”http://circlecube.com/2008/05/21/”>this</a> will be styled, because the link is absolute (even though it is local) so be careful with how you use it.

    HTML

    it would style
    <a href="�http://www.google.com�">This link</a>
    because it begins with ‘http://’ but not
    <a href="http://circlecube.com/wp-admin/�/2008/05/21/�">this one</a>
    because it is does not begin with ‘http://’.
    But it would also style
    <a href="�https://paypal.com�">this</a>
    because it matches the selector after the comma ‘https://’,
    and even
    <a href="�http://circlecube.com/2008/05/21/�">this</a>
    will be styled, because the link is absolute
    (even though it is local) so be careful with how you use it.

    Summary

    Hoping you will see the pattern and can use the rest of these somehow (I’m drawing blank on interesting examples),

    1 is: [attribute] exists

    target anchors with any titles attributes.

    CSS

    a[title] {
    background-color:#0000FF; (blue)
    }

    HTML

    <a title="some title" href="http://circlecube.com/">Link</a>

    2 equal: [attribute=x] equals x

    target only anchors where the title attribute contains something exactly

    CSS

    a[title="Only"] {
    background-color:#FF0000; (red)
    }

    HTML

    <a title="Only" href="http://circlecube.com/">Link</a>

    3 hat: [attribute^=x] starts with x

    target instances where something comes at the beginning of the attribute. This can prefix a word or even be the first word in a phrase or sentance.

    CSS

    a[title^="Super"] {
    background-color:#00FF00; (green)
    }

    HTML

    <a title="Supercalafragalisticexpialadosious" href="http://circlecube.com/">Link</a>

    4 dollar: [attribute$=x] ends with x

    instances where something comes at the end of the attribute. This can be the suffix of the word or the last word in a phrase.

    CSS

    a[title$="ious"] {
    background-color:#FFFF00; (yellow)
    }

    HTML

    <a title="Supercalafragalisticexpialadosious" href="http://circlecube.com/">Link</a>

    5 asterisk: [attribute*=x] contains x

    or even titles which contain a certain word somewhere/anywhere in the attribute. This wildcard be anywhere, in a word, as a word, whatever.

    CSS

    a[title*="tic"] {
    background-color:#FF00FF; (magenta)
    }

    HTML

    <a title="Supercalafragalisticexpialadosious" href="http://circlecube.com/">Link</a>

    6 tilde: [attribute~=x] one of which is exactly x.

    a space-separated list of “words”, one of which is exactly x.

    CSS

    a[title~="tic"] {
    background-color:#FF00FF; (magenta)
    }

    HTML

    <a title="Super cala fragalis tic expi ala dosious" href="http://circlecube.com/">Link</a>

    7 pipe: [attribute|=x] which first word is exactly x.

    a hyphen-separated list of “words”, first word is exactly x.

    CSS

    a[title|="Super"] {
    background-color:#FF00FF; (magenta)
    }

    HTML

    <a title="Super-cala-fragalis-tic-expi-ala-dosious" href="http://circlecube.com/">Link</a>

    view all examples on this page.
    refer to w3 for more

    Let me know what you come up with or if I’ve left out any essentials.

    This entry was posted in tutorial and tagged , , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

    Post a Comment

    Your email is never published nor shared. Required fields are marked *

    *
    *

    You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    • Recent Posts

      WordPress updates plugin directory

      New additions to the plugin directory include: favorites, incorporating support forums into it's own tab for each plugin as well as support stats being displayed! Great! I think we also need the ability to give plugins ratings and reviews (bonus points if it can be done from within a wordpress admin dashboard when installing plugins). [...]

      Short Head

      Use zipf's short head to tune your website rather than redesign the whole thing. To make a website successful it needs to meet the needs of the users. Find out what those needs are by using the short head philosophy to equate most searched things as the biggest needs of the users. Use personas to [...]

      Img Set?

      Great article at a list apart discusing the state of the industry regarding responsive images. This picks apart the set attribute of the img element from a surprisingly objective view coming from someone so close to the picture element. Insightful discussion about the principle behind the proposals than the actual solution too. If the working [...]

      Triudo

      A mesmerizing animated triangle-ish shape form. Embedded Link triduo triduo Tweet

      Git – the paradigm shift

      A great developer story about the differences on what Git is vs other version control and what Git is not. This is how we should learn it. I heard over and over that it was distributed, but never grasped what that meant, so here are a few links and explanations that will help unlearn version [...]

      Tweening Lib comes to Javascript!

      I'm very excited to share the news that the tween library from GreenSock (hands down the best tweening library I used in flash) is not ported for use in javascript! This will be great! I missed that simple syntax from as3 when animating javascript, and now I can have my cake and eat it too. [...]

      Responsive CSS Tricks

      Here are a few useful css tricks to remember when building responsive design sites from web designer wall Embedded Link 5 Useful CSS Tricks for Responsive Design Making the design to be responsive is very easy as shown in my Responsive Design in 3 Steps tutorial, but maintaining the elements to look aesthetically balanced on [...]

      Picture element of srcset attribute?

      Bruce details the reasons and story behind the srcset attribute which is now introduced as an alternative to the picture element. Some aspects of the attribute are nice (like the fact that it's an attribute and not a new element, so it's creating up new elements with for problems. It's adapting currently used elements to [...]

      SVG Preloader with Raphael JS

      Here's a very creative use of using a newly available technology. Using svg graphics which are very lightweight, for a website preloader. I like the animation used as well. Embedded Link Make a stylish preloader with SVG | Tutorial | .net magazine Many sites neglect users with slow connections. Ian Culshaw explains how to use [...]

      CSS3 Button/Icon set

      I've been secretly hoping to see a few of these pop up once the whole icon font idea spread through the nets. I really like this idea and it's a very nice implementation too! I only see some quality issues on a couple of the icons (such as youtube), but it's awesome and I hope [...]

    • Recent Comments

      Bruce Brownlee

      Bruce Brownlee

      Ah IE6. I'd have 2 more years of sleep without IE6. Margin doubling, no properties,...
      versaena

      versaena

      how to give color at runtime…… thank you
      Mobile Websites

      Mobile Websites

      I disagree, mobile websites are the future – desktop websites and mobile websites...
      Matt Fasick

      Matt Fasick

      That's cool. I like the ripple effect as well.
      Nico

      Nico

      hi! really great job guy! very impressive.. just a question… do u have a solution to do a refresh...
      Evan Mullins

      Evan Mullins

      Agreed! I've just seen some people get pretty heated about separating all functionality...