I am trying to understand image sprites on CSS, and one line of code looks like this.
#navlist li, #navlist a{height:44px;display:block;}
I am just wondering what effect does display:block has on "a", I know that it is for the "a" tag since the link won't work if I removed "a" and conversely if I removed "display:block", I'm just wondering why it should be "display:block".
display: block An element that has the display property set to block starts on a new line and takes up the available screen width. You can specify the width and height properties for such elements. Examples of elements that are at block-level by default are <div> , <section> , <p> , and lots more.
The display property specifies if/how an element is displayed. Every HTML element has a default display value depending on what type of element it is. The default display value for most elements is block or inline . This panel contains a <div> element, which is hidden by default ( display: none ).
The display CSS property sets whether an element is treated as a block or inline element and the layout used for its children, such as flow layout, grid or flex. Formally, the display property sets an element's inner and outer display types.
Block-level Elements Two commonly used block elements are: <p> and <div> . The <p> element defines a paragraph in an HTML document. The <div> element defines a division or a section in an HTML document. The <p> element is a block-level element.
To make the inline element (a, span etc) to behave like a box model element (div, p, h1 etc), in other words, to make the a
tag behave like a div
tag.
Inline elements can live side by side on the same line, for example if you write
<a href="example.com">Link1</a> <a href="example.com">Link2</a>
they will appear like Link1 Link2 but box model elements can't live in the same line, for example, if you write something like
<div>Box1</div><div>Box2</div>
they will appear like
Box1
Box2
Both divs will occupy the whole space around them (even if they are smaller in width). In a list, for example,
<li><a href="">Home</a></li>
If the list width is 300px
then the a tag will not cover the full width of the li's width because by default the a
tag is inline
and using display:block
will make the a
element to occupy the full width of the li
, even if it's not that wide.
There are more to say about this, I've just gave you an example, you should read more. Check this link and also Check this example.
The w3schools explanation for display:block
is as fallow
The element is displayed as a block-level element (like paragraphs and headers)
and you can check the display behavior here
practically mostly we use display:block
in four situations
diaply:none
and display:block
But link functionality doesn't have any relationship with the display
or CSS
, link showld work interdependently, CSS wrote for the anchor tag, just for style the link.
here is some more details about display
https://developer.mozilla.org/en-US/docs/Web/CSS/display
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With