3

This question might be silly to you but It's the reason why I asked is because I always see the source code of some big commercial website having this tag for example and I'm wondering why:

<a href="https://www.mywebsite.com" title="" target="_blank"><i class="myclass" id="myId"></i></a>

and it displays images or icons I guess. So I'm curious and I want to know how to insert an image on html i tag with css.

7
  • So where did you see this? Why didn't you inspect the element in question and see how it has been done. Putting a background on an i tag is nothing different than any other tag. Commented Jun 17, 2015 at 8:30
  • Wouldn't that be just background-image property for myclass? Commented Jun 17, 2015 at 8:31
  • Just for experimental purposes I tried something like this <a><i id="myid" style="background-image:url('../Photos/queen.png')" ></i></a> but it's not showing anything.Any thoughts?Thanks Commented Jun 17, 2015 at 8:35
  • 1
    Well, is the path to the image correct? Also, have you specified height and width on the i-tag? Commented Jun 17, 2015 at 8:42
  • 1
    i is displayed by default as inline: you must set it as display: inline-block for example or width and height won't have any effect. Or have enough content in it but that's not how this sort of element is (ab)used when it isn't used for displaying a text as italic Commented Jun 17, 2015 at 8:48

1 Answer 1

4

You set the background image on an i element the same way that you set it on any other element:

  1. Use the background-image property
  2. Ensure the element has an area to display the background on (either with explicit dimensions (remembering that it is display: inline by default so height and width won't apply unless you change that) or content to give it implicit dimensions).

Such:

i {
    display: inline-block;
    height: 200px;
    width: 200px;
    background-image: url(/foo/bar/baz.jpeg);
}

… but don't use an <i> element for this. Write semantic markup instead.

Use a <span> if you want an inline element that doesn't come with incorrect semantics.

Use an <img> (with an alt attribute) and not a background at all if you are conveying information with the image.

Sign up to request clarification or add additional context in comments.

1 Comment

Yes, you're right. I was just wondering why they use the i tag instead of span or img that is why I asked. Just for a curiosity reason. Thanks again.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.