Best thing is to wrap inline
elements inside block
elements
best option is to use a div
element which is block
which takes a full width
by default once you add a width it will work perfectly
div {
border: 1px solid red;
/*width:200px*/
}
<div>
<h2>Article 1</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</div>
by default span is a inline
element you can see in the first example which doesnt take any width
you will need to set it to display:inline-block
here is the default demo
span {
border: 1px solid red;
}
<span>
<h2>Article 1</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</span>
<span>
<h2>Article 2</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</span>
<span>
<h2>Article 3</h2>
<p>Content for article 3. Bla bla bla bla bla and some more bla...</p>
</span>
span {
width: 200px;
display:inline-block;
border:1px solid red;
}
<span>
<h2>Article 1</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</span>
<span>
<h2>Article 2</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</span>
<span>
<h2>Article 3</h2>
<p>Content for article 3. Bla bla bla bla bla and some more bla...</p>
</span>
If you doeswant the spacing between inline
element you can use float
but dont forget to clear the float
span {
width: 200px;
float: left;
border: 1px solid red;
}
<span>
<h2>Article 1</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</span>
<span>
<h2>Article 2</h2>
<p>Content for article 1. Bla bla bla bla bla and some more bla...</p>
</span>
<span>
<h2>Article 3</h2>
<p>Content for article 3. Bla bla bla bla bla and some more bla...</p>
</span>