Related
This question already has answers here:
Bootstrap 4 how to have margin between columns without going over space
(2 answers)
Closed 3 years ago.
I have been building a webpage for a class and we are using Bootstrap 4.
Thing is, every time I add a margin to one of my elements with the .col-*-4 class it pushes down my third element and I have no idea how to fix this.
I have tried using flexbox, but that just completely messes up the layout of my section. I have tried using absolute positioning but it is just a complete hassle and I have no idea how to fix this. I don't know if I have the wrong keywords because I can't find anyone who has had this exact problem.
I have already tried to use the flexbox portion of bootstrap, but it completely screws up the layout that I intend to have, and I have tried using absolute positioning but it's a hassle to deal with and I know that there is a simpler way. I just can't figure it out.
/*Main Content*/
#menuTitle {
padding: 25px;
font-size: 2.5em;
font-weight: bold;
color: #000;
}
#chickenHeading,
#beefHeading,
#sushiHeading {
padding: 10px;
width: 200px;
}
#chicken,
#beef,
#sushi {
border-radius: 6px;
position: relative;
overflow: hidden;
}
#chickenBacktoTop,
#beefBacktoTop,
#sushiBacktoTop {
position: absolute;
bottom: 0;
right: 0;
border-radius: 6px;
}
h1 {
font-weight: 800;
}
p {
color: #A9A9;
}
/*Extra Large, Large, and Medium Devices*/
#media (min-width: 768px) {
#chicken,
#beef,
#sushi {
margin: 15px;
}
}
/*Extra Small and Small Devices*/
#media (max-width: 767px) {
#chicken,
#beef,
#sushi {
margin: 10px auto;
height: 650px;
}
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<!--Main Content-->
<div class='container-fluid mx-auto'>
<div id='menuTitle' class='text-center'>Our Menu</div>
<div class='row d-flex mx-auto'>
<!--Chicken Section-->
<section id='chicken' class='bg-dark col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<h3 id='chickenHeading' class='d-flex mx-auto justify-content-center'>Chicken</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus congue lacus in luctus eleifend. Curabitur varius dictum lorem vel posuere. Curabitur blandit congue ante, eu dictum nisl rhoncus sit amet. Aenean cursus lorem at turpis consectetur faucibus.
Sed ultrices vehicula odio, eu laoreet neque suscipit quis. Aliquam sit amet lectus aliquam, suscipit massa id, pharetra ex. Nulla nisi nunc, posuere eget dignissim eget, malesuada sollicitudin libero. Quisque scelerisque porttitor ultricies.
Sed eget ex sed ante euismod malesuada eget fringilla arcu. Aenean egestas tincidunt gravida. Praesent non mattis nibh. Cras aliquet efficitur ex, non imperdiet felis feugiat ac. Aenean sagittis justo sit amet enim congue, nec finibus velit vestibulum.
Cras eros ante, tincidunt facilisis euismod sit amet, interdum ac diam. Suspendisse facilisis hendrerit sapien non ornare. Nullam nec magna nunc. Aliquam nisi magna, vehicula eu tellus eget, aliquam dignissim erat. Ut ut ullamcorper nisi. Etiam
iaculis fringilla lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris eu tincidunt risus. Sed eu bibendum leo, vitae convallis elit. Donec feugiat tellus a velit suscipit condimentum.
Sed ut augue sagittis, facilisis mauris at, fermentum turpis. Duis dictum libero id dolor porttitor porttitor. Quisque tempor orci eu purus mollis, id semper tortor fringilla. Aliquam auctor pretium turpis at sodales. Morbi dictum neque arcu,
nec fringilla velit porttitor ac. Cras tristique vestibulum dolor, id cursus tortor ullamcorper sit amet. Nullam varius imperdiet risus vel volutpat. Aenean dapibus, urna sed lacinia suscipit, enim ligula bibendum orci, non mattis nulla nunc quis
dolor. Nunc neque ante, tristique vulputate mi et, finibus commodo urna. Integer faucibus in nisi consequat auctor. Aliquam quis odio eget lorem tempus pellentesque. Nam scelerisque viverra neque et ullamcorper. In ipsum nisl, sagittis ut est
quis, viverra venenatis tortor.
</p>
<a id='chickenBacktoTop' class='btn btn-primary d-block d-md-none' href='#header-nav'>Back to Top</a>
</section>
<!--Beef Section-->
<section id='beef' class='bg-dark col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<h3 id='beefHeading' class='d-flex mx-auto justify-content-center'>Beef</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus congue lacus in luctus eleifend. Curabitur varius dictum lorem vel posuere. Curabitur blandit congue ante, eu dictum nisl rhoncus sit amet. Aenean cursus lorem at turpis consectetur faucibus.
Sed ultrices vehicula odio, eu laoreet neque suscipit quis. Aliquam sit amet lectus aliquam, suscipit massa id, pharetra ex. Nulla nisi nunc, posuere eget dignissim eget, malesuada sollicitudin libero. Quisque scelerisque porttitor ultricies.
Sed eget ex sed ante euismod malesuada eget fringilla arcu. Aenean egestas tincidunt gravida. Praesent non mattis nibh. Cras aliquet efficitur ex, non imperdiet felis feugiat ac. Aenean sagittis justo sit amet enim congue, nec finibus velit vestibulum.
Cras eros ante, tincidunt facilisis euismod sit amet, interdum ac diam. Suspendisse facilisis hendrerit sapien non ornare. Nullam nec magna nunc. Aliquam nisi magna, vehicula eu tellus eget, aliquam dignissim erat. Ut ut ullamcorper nisi. Etiam
iaculis fringilla lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris eu tincidunt risus. Sed eu bibendum leo, vitae convallis elit. Donec feugiat tellus a velit suscipit condimentum.
Sed ut augue sagittis, facilisis mauris at, fermentum turpis. Duis dictum libero id dolor porttitor porttitor. Quisque tempor orci eu purus mollis, id semper tortor fringilla. Aliquam auctor pretium turpis at sodales. Morbi dictum neque arcu,
nec fringilla velit porttitor ac. Cras tristique vestibulum dolor, id cursus tortor ullamcorper sit amet. Nullam varius imperdiet risus vel volutpat. Aenean dapibus, urna sed lacinia suscipit, enim ligula bibendum orci, non mattis nulla nunc quis
dolor. Nunc neque ante, tristique vulputate mi et, finibus commodo urna. Integer faucibus in nisi consequat auctor. Aliquam quis odio eget lorem tempus pellentesque. Nam scelerisque viverra neque et ullamcorper. In ipsum nisl, sagittis ut est
quis, viverra venenatis tortor.
</p>
<a id='beefBacktoTop' class='btn btn-primary d-block d-md-none' href='#header-nav'>Back to Top</a>
</section>
<!--Sushi Section-->
<section id='sushi' class='bg-dark col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<h3 id='sushiHeading' class='d-flex mx-auto justify-content-center'>Sushi</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus congue lacus in luctus eleifend. Curabitur varius dictum lorem vel posuere. Curabitur blandit congue ante, eu dictum nisl rhoncus sit amet. Aenean cursus lorem at turpis consectetur faucibus.
Sed ultrices vehicula odio, eu laoreet neque suscipit quis. Aliquam sit amet lectus aliquam, suscipit massa id, pharetra ex. Nulla nisi nunc, posuere eget dignissim eget, malesuada sollicitudin libero. Quisque scelerisque porttitor ultricies.
Sed eget ex sed ante euismod malesuada eget fringilla arcu. Aenean egestas tincidunt gravida. Praesent non mattis nibh. Cras aliquet efficitur ex, non imperdiet felis feugiat ac. Aenean sagittis justo sit amet enim congue, nec finibus velit vestibulum.
Cras eros ante, tincidunt facilisis euismod sit amet, interdum ac diam. Suspendisse facilisis hendrerit sapien non ornare. Nullam nec magna nunc. Aliquam nisi magna, vehicula eu tellus eget, aliquam dignissim erat. Ut ut ullamcorper nisi. Etiam
iaculis fringilla lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris eu tincidunt risus. Sed eu bibendum leo, vitae convallis elit. Donec feugiat tellus a velit suscipit condimentum.
Sed ut augue sagittis, facilisis mauris at, fermentum turpis. Duis dictum libero id dolor porttitor porttitor. Quisque tempor orci eu purus mollis, id semper tortor fringilla. Aliquam auctor pretium turpis at sodales. Morbi dictum neque arcu,
nec fringilla velit porttitor ac. Cras tristique vestibulum dolor, id cursus tortor ullamcorper sit amet. Nullam varius imperdiet risus vel volutpat. Aenean dapibus, urna sed lacinia suscipit, enim ligula bibendum orci, non mattis nulla nunc quis
dolor. Nunc neque ante, tristique vulputate mi et, finibus commodo urna. Integer faucibus in nisi consequat auctor. Aliquam quis odio eget lorem tempus pellentesque. Nam scelerisque viverra neque et ullamcorper. In ipsum nisl, sagittis ut est
quis, viverra venenatis tortor.
</p>
<a id='sushiBacktoTop' class='btn btn-primary d-block' href='#header-nav'>Back to Top</a>
</section>
</div>
</div>
Margins increase column width, which causes them not to fit on the same line and to wrap.
However, Bootstrap columns have gutters (padding) by default.
Each column has horizontal padding (called a gutter) for controlling the space between them. This padding is then counteracted on the rows with negative margins. This way, all the content in your columns is visually aligned down the left side.
Bootstrap 4.0 Layout Grid - How It Works
I recommend wrapping the contents of each column in a containing <div> and styling that element as desired (e.g. padding, background color, etc).
For example:
<section class='col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<div id='chicken' class='bg-dark'>
...
</div>
</section>
Here's a demonstration:
/*Main Content*/
#menuTitle {
padding: 25px;
font-size: 2.5em;
font-weight: bold;
color: #000;
}
.secContents {
position: relative;
border-radius: 6px;
padding: 0 15px;
}
.secHeading {
padding: 10px;
}
.secBackTop {
position: absolute;
bottom: 0;
right: 0;
border-radius: 6px;
}
h1 {
font-weight: 800;
}
p {
color: #A9A9;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" />
<!--Main Content-->
<div class='container-fluid mx-auto'>
<div id='menuTitle' class='text-center'>Our Menu</div>
<div class='row d-flex mx-auto'>
<!--Chicken Section-->
<section class='col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<div class='secContents bg-dark'>
<h3 class='secHeading d-flex mx-auto justify-content-center'>Chicken</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus congue lacus in luctus eleifend. Curabitur varius dictum lorem vel posuere. Curabitur blandit congue ante, eu dictum nisl rhoncus sit amet. Aenean cursus lorem at turpis consectetur faucibus.
Sed ultrices vehicula odio, eu laoreet neque suscipit quis. Aliquam sit amet lectus aliquam, suscipit massa id, pharetra ex. Nulla nisi nunc, posuere eget dignissim eget, malesuada sollicitudin libero. Quisque scelerisque porttitor ultricies.
Sed eget ex sed ante euismod malesuada eget fringilla arcu. Aenean egestas tincidunt gravida. Praesent non mattis nibh. Cras aliquet efficitur ex, non imperdiet felis feugiat ac. Aenean sagittis justo sit amet enim congue, nec finibus velit
vestibulum. Cras eros ante, tincidunt facilisis euismod sit amet, interdum ac diam. Suspendisse facilisis hendrerit sapien non ornare. Nullam nec magna nunc. Aliquam nisi magna, vehicula eu tellus eget, aliquam dignissim erat. Ut ut ullamcorper
nisi. Etiam iaculis fringilla lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris eu tincidunt risus. Sed eu bibendum leo, vitae convallis elit. Donec feugiat tellus a velit suscipit
condimentum. Sed ut augue sagittis, facilisis mauris at, fermentum turpis. Duis dictum libero id dolor porttitor porttitor. Quisque tempor orci eu purus mollis, id semper tortor fringilla. Aliquam auctor pretium turpis at sodales. Morbi dictum
neque arcu, nec fringilla velit porttitor ac. Cras tristique vestibulum dolor, id cursus tortor ullamcorper sit amet. Nullam varius imperdiet risus vel volutpat. Aenean dapibus, urna sed lacinia suscipit, enim ligula bibendum orci, non mattis
nulla nunc quis dolor. Nunc neque ante, tristique vulputate mi et, finibus commodo urna. Integer faucibus in nisi consequat auctor. Aliquam quis odio eget lorem tempus pellentesque. Nam scelerisque viverra neque et ullamcorper. In ipsum nisl,
sagittis ut est quis, viverra venenatis tortor.
</p>
<a class='secBackTop btn btn-primary d-block d-md-none' href='#header-nav'>Back to Top</a>
</div>
</section>
<!--Beef Section-->
<section class='col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<div class='secContents bg-dark'>
<h3 class='secHeading d-flex mx-auto justify-content-center'>Beef</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus congue lacus in luctus eleifend. Curabitur varius dictum lorem vel posuere. Curabitur blandit congue ante, eu dictum nisl rhoncus sit amet. Aenean cursus lorem at turpis consectetur faucibus.
Sed ultrices vehicula odio, eu laoreet neque suscipit quis. Aliquam sit amet lectus aliquam, suscipit massa id, pharetra ex. Nulla nisi nunc, posuere eget dignissim eget, malesuada sollicitudin libero. Quisque scelerisque porttitor ultricies.
Sed eget ex sed ante euismod malesuada eget fringilla arcu. Aenean egestas tincidunt gravida. Praesent non mattis nibh. Cras aliquet efficitur ex, non imperdiet felis feugiat ac. Aenean sagittis justo sit amet enim congue, nec finibus velit
vestibulum. Cras eros ante, tincidunt facilisis euismod sit amet, interdum ac diam. Suspendisse facilisis hendrerit sapien non ornare. Nullam nec magna nunc. Aliquam nisi magna, vehicula eu tellus eget, aliquam dignissim erat. Ut ut ullamcorper
nisi. Etiam iaculis fringilla lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris eu tincidunt risus. Sed eu bibendum leo, vitae convallis elit. Donec feugiat tellus a velit suscipit
condimentum. Sed ut augue sagittis, facilisis mauris at, fermentum turpis. Duis dictum libero id dolor porttitor porttitor. Quisque tempor orci eu purus mollis, id semper tortor fringilla. Aliquam auctor pretium turpis at sodales. Morbi dictum
neque arcu, nec fringilla velit porttitor ac. Cras tristique vestibulum dolor, id cursus tortor ullamcorper sit amet. Nullam varius imperdiet risus vel volutpat. Aenean dapibus, urna sed lacinia suscipit, enim ligula bibendum orci, non mattis
nulla nunc quis dolor. Nunc neque ante, tristique vulputate mi et, finibus commodo urna. Integer faucibus in nisi consequat auctor. Aliquam quis odio eget lorem tempus pellentesque. Nam scelerisque viverra neque et ullamcorper. In ipsum nisl,
sagittis ut est quis, viverra venenatis tortor.
</p>
<a class='secBackTop btn btn-primary d-block d-md-none' href='#header-nav'>Back to Top</a>
</div>
</section>
<!--Sushi Section-->
<section class='col-xs-12 col-sm-12 col-md-4 col-lg-4 col-xl-4'>
<div class='secContents bg-dark'>
<h3 class='secHeading d-flex mx-auto justify-content-center'>Sushi</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus congue lacus in luctus eleifend. Curabitur varius dictum lorem vel posuere. Curabitur blandit congue ante, eu dictum nisl rhoncus sit amet. Aenean cursus lorem at turpis consectetur faucibus.
Sed ultrices vehicula odio, eu laoreet neque suscipit quis. Aliquam sit amet lectus aliquam, suscipit massa id, pharetra ex. Nulla nisi nunc, posuere eget dignissim eget, malesuada sollicitudin libero. Quisque scelerisque porttitor ultricies.
Sed eget ex sed ante euismod malesuada eget fringilla arcu. Aenean egestas tincidunt gravida. Praesent non mattis nibh. Cras aliquet efficitur ex, non imperdiet felis feugiat ac. Aenean sagittis justo sit amet enim congue, nec finibus velit
vestibulum. Cras eros ante, tincidunt facilisis euismod sit amet, interdum ac diam. Suspendisse facilisis hendrerit sapien non ornare. Nullam nec magna nunc. Aliquam nisi magna, vehicula eu tellus eget, aliquam dignissim erat. Ut ut ullamcorper
nisi. Etiam iaculis fringilla lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris eu tincidunt risus. Sed eu bibendum leo, vitae convallis elit. Donec feugiat tellus a velit suscipit
condimentum. Sed ut augue sagittis, facilisis mauris at, fermentum turpis. Duis dictum libero id dolor porttitor porttitor. Quisque tempor orci eu purus mollis, id semper tortor fringilla. Aliquam auctor pretium turpis at sodales. Morbi dictum
neque arcu, nec fringilla velit porttitor ac. Cras tristique vestibulum dolor, id cursus tortor ullamcorper sit amet. Nullam varius imperdiet risus vel volutpat. Aenean dapibus, urna sed lacinia suscipit, enim ligula bibendum orci, non mattis
nulla nunc quis dolor. Nunc neque ante, tristique vulputate mi et, finibus commodo urna. Integer faucibus in nisi consequat auctor. Aliquam quis odio eget lorem tempus pellentesque. Nam scelerisque viverra neque et ullamcorper. In ipsum nisl,
sagittis ut est quis, viverra venenatis tortor.
</p>
<a class='secBackTop btn btn-primary d-block' href='#header-nav'>Back to Top</a>
</div>
</section>
</div>
</div>
I'm new to web development and in this example I'm working on: http://codepen.io/wabibito/pen/RawGPo
<head>
<title>Tiago Dias Ferreira</title>
<style>
ul {
list-style-type: none;
margin: auto auto;
overflow: hidden;
background-color: #333;
position: static;
}
li {
float: left;
}
li a {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover {
background-color: #111;
}
</style>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top topnav">
<ul>
<li>Home</li>
<li>About</li>
<li>Portfolio</li>
<li>Contact</li>
</ul>
</nav>
<a name="home"></a>
<h1 class="text-primary text-center">Tiago Dias Ferreira</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum rhoncus aliquam velit eget luctus. Proin suscipit lorem ex, ut porta nulla dignissim eu. Praesent at tristique risus, sit amet lacinia urna. Quisque vitae congue mauris, et facilisis nulla. Sed quam dolor, blandit ac velit in, luctus vehicula felis. Donec fringilla urna dolor, ac semper quam congue non. Praesent vel nunc eleifend, mattis ipsum eget, vestibulum eros. Nunc et semper massa.
</p>
<p>
In tortor dui, cursus a velit ac, convallis hendrerit ligula. Nunc ultricies efficitur nisl. Suspendisse condimentum porttitor maximus. Morbi purus nunc, posuere id gravida ac, suscipit at urna. Phasellus non diam vitae mauris aliquet porttitor tincidunt id nibh. Nullam imperdiet nisl eu est imperdiet, porttitor vehicula metus iaculis. Donec rutrum eget tortor a consequat. Maecenas ac arcu erat. Fusce rhoncus nisl eget elementum pharetra. Proin a enim ac mauris mattis ultricies quis a dolor.
</p>
<p>
Nullam ornare non nibh sed cursus. Phasellus volutpat nisi eu nunc dignissim semper. Vivamus nec neque mi. Suspendisse potenti. Aliquam vehicula augue tristique bibendum faucibus. Nam in imperdiet orci, in molestie ante. Pellentesque maximus ex a risus gravida, eget rhoncus neque venenatis.
</p>
<p>
In nec imperdiet diam, at malesuada justo. Donec venenatis in nulla sed consequat. Nunc hendrerit, turpis ut viverra dapibus, tortor lorem consequat sem, ut dapibus massa nisl sit amet arcu. Proin tempor tincidunt ipsum et molestie. Pellentesque vulputate velit sit amet tellus iaculis, eget viverra nibh malesuada. Proin tristique nunc vitae magna cursus, at blandit dolor faucibus. Aenean dignissim sit amet arcu eget vestibulum.
</p>
<p>
Vivamus nec diam non urna pellentesque varius at non tellus. Pellentesque interdum faucibus maximus. Phasellus diam sapien, tincidunt quis cursus at, accumsan eget diam. Integer ullamcorper nulla nec justo consectetur, porta faucibus mauris gravida. Maecenas sagittis sodales velit, et tempor libero efficitur et. Suspendisse pulvinar at nisi quis interdum. In in vestibulum turpis, eget suscipit massa. Nullam faucibus sodales ornare. Mauris at ultricies ex, sit amet convallis lorem.
</p>
<a name="about"></a>
<h1 class="text-primary text-center">Tiago Dias Ferreira</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum rhoncus aliquam velit eget luctus. Proin suscipit lorem ex, ut porta nulla dignissim eu. Praesent at tristique risus, sit amet lacinia urna. Quisque vitae congue mauris, et facilisis nulla. Sed quam dolor, blandit ac velit in, luctus vehicula felis. Donec fringilla urna dolor, ac semper quam congue non. Praesent vel nunc eleifend, mattis ipsum eget, vestibulum eros. Nunc et semper massa.
</p>
<p>
In tortor dui, cursus a velit ac, convallis hendrerit ligula. Nunc ultricies efficitur nisl. Suspendisse condimentum porttitor maximus. Morbi purus nunc, posuere id gravida ac, suscipit at urna. Phasellus non diam vitae mauris aliquet porttitor tincidunt id nibh. Nullam imperdiet nisl eu est imperdiet, porttitor vehicula metus iaculis. Donec rutrum eget tortor a consequat. Maecenas ac arcu erat. Fusce rhoncus nisl eget elementum pharetra. Proin a enim ac mauris mattis ultricies quis a dolor.
</p>
<p>
Nullam ornare non nibh sed cursus. Phasellus volutpat nisi eu nunc dignissim semper. Vivamus nec neque mi. Suspendisse potenti. Aliquam vehicula augue tristique bibendum faucibus. Nam in imperdiet orci, in molestie ante. Pellentesque maximus ex a risus gravida, eget rhoncus neque venenatis.
</p>
<p>
In nec imperdiet diam, at malesuada justo. Donec venenatis in nulla sed consequat. Nunc hendrerit, turpis ut viverra dapibus, tortor lorem consequat sem, ut dapibus massa nisl sit amet arcu. Proin tempor tincidunt ipsum et molestie. Pellentesque vulputate velit sit amet tellus iaculis, eget viverra nibh malesuada. Proin tristique nunc vitae magna cursus, at blandit dolor faucibus. Aenean dignissim sit amet arcu eget vestibulum.
</p>
<p>
Vivamus nec diam non urna pellentesque varius at non tellus. Pellentesque interdum faucibus maximus. Phasellus diam sapien, tincidunt quis cursus at, accumsan eget diam. Integer ullamcorper nulla nec justo consectetur, porta faucibus mauris gravida. Maecenas sagittis sodales velit, et tempor libero efficitur et. Suspendisse pulvinar at nisi quis interdum. In in vestibulum turpis, eget suscipit massa. Nullam faucibus sodales ornare. Mauris at ultricies ex, sit amet convallis lorem.
</p>
<a name="portfolio"></a>
<h1 class="text-primary text-center">Tiago Dias Ferreira</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum rhoncus aliquam velit eget luctus. Proin suscipit lorem ex, ut porta nulla dignissim eu. Praesent at tristique risus, sit amet lacinia urna. Quisque vitae congue mauris, et facilisis nulla. Sed quam dolor, blandit ac velit in, luctus vehicula felis. Donec fringilla urna dolor, ac semper quam congue non. Praesent vel nunc eleifend, mattis ipsum eget, vestibulum eros. Nunc et semper massa.
</p>
<p>
In tortor dui, cursus a velit ac, convallis hendrerit ligula. Nunc ultricies efficitur nisl. Suspendisse condimentum porttitor maximus. Morbi purus nunc, posuere id gravida ac, suscipit at urna. Phasellus non diam vitae mauris aliquet porttitor tincidunt id nibh. Nullam imperdiet nisl eu est imperdiet, porttitor vehicula metus iaculis. Donec rutrum eget tortor a consequat. Maecenas ac arcu erat. Fusce rhoncus nisl eget elementum pharetra. Proin a enim ac mauris mattis ultricies quis a dolor.
</p>
<p>
Nullam ornare non nibh sed cursus. Phasellus volutpat nisi eu nunc dignissim semper. Vivamus nec neque mi. Suspendisse potenti. Aliquam vehicula augue tristique bibendum faucibus. Nam in imperdiet orci, in molestie ante. Pellentesque maximus ex a risus gravida, eget rhoncus neque venenatis.
</p>
<p>
In nec imperdiet diam, at malesuada justo. Donec venenatis in nulla sed consequat. Nunc hendrerit, turpis ut viverra dapibus, tortor lorem consequat sem, ut dapibus massa nisl sit amet arcu. Proin tempor tincidunt ipsum et molestie. Pellentesque vulputate velit sit amet tellus iaculis, eget viverra nibh malesuada. Proin tristique nunc vitae magna cursus, at blandit dolor faucibus. Aenean dignissim sit amet arcu eget vestibulum.
</p>
<p>
Vivamus nec diam non urna pellentesque varius at non tellus. Pellentesque interdum faucibus maximus. Phasellus diam sapien, tincidunt quis cursus at, accumsan eget diam. Integer ullamcorper nulla nec justo consectetur, porta faucibus mauris gravida. Maecenas sagittis sodales velit, et tempor libero efficitur et. Suspendisse pulvinar at nisi quis interdum. In in vestibulum turpis, eget suscipit massa. Nullam faucibus sodales ornare. Mauris at ultricies ex, sit amet convallis lorem.
</p>
<a name="contact"></a>
<h1 class="text-primary text-center">Tiago Dias Ferreira</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum rhoncus aliquam velit eget luctus. Proin suscipit lorem ex, ut porta nulla dignissim eu. Praesent at tristique risus, sit amet lacinia urna. Quisque vitae congue mauris, et facilisis nulla. Sed quam dolor, blandit ac velit in, luctus vehicula felis. Donec fringilla urna dolor, ac semper quam congue non. Praesent vel nunc eleifend, mattis ipsum eget, vestibulum eros. Nunc et semper massa.
</p>
<p>
In tortor dui, cursus a velit ac, convallis hendrerit ligula. Nunc ultricies efficitur nisl. Suspendisse condimentum porttitor maximus. Morbi purus nunc, posuere id gravida ac, suscipit at urna. Phasellus non diam vitae mauris aliquet porttitor tincidunt id nibh. Nullam imperdiet nisl eu est imperdiet, porttitor vehicula metus iaculis. Donec rutrum eget tortor a consequat. Maecenas ac arcu erat. Fusce rhoncus nisl eget elementum pharetra. Proin a enim ac mauris mattis ultricies quis a dolor.
</p>
<p>
Nullam ornare non nibh sed cursus. Phasellus volutpat nisi eu nunc dignissim semper. Vivamus nec neque mi. Suspendisse potenti. Aliquam vehicula augue tristique bibendum faucibus. Nam in imperdiet orci, in molestie ante. Pellentesque maximus ex a risus gravida, eget rhoncus neque venenatis.
</p>
<p>
In nec imperdiet diam, at malesuada justo. Donec venenatis in nulla sed consequat. Nunc hendrerit, turpis ut viverra dapibus, tortor lorem consequat sem, ut dapibus massa nisl sit amet arcu. Proin tempor tincidunt ipsum et molestie. Pellentesque vulputate velit sit amet tellus iaculis, eget viverra nibh malesuada. Proin tristique nunc vitae magna cursus, at blandit dolor faucibus. Aenean dignissim sit amet arcu eget vestibulum.
</p>
<p>
Vivamus nec diam non urna pellentesque varius at non tellus. Pellentesque interdum faucibus maximus. Phasellus diam sapien, tincidunt quis cursus at, accumsan eget diam. Integer ullamcorper nulla nec justo consectetur, porta faucibus mauris gravida. Maecenas sagittis sodales velit, et tempor libero efficitur et. Suspendisse pulvinar at nisi quis interdum. In in vestibulum turpis, eget suscipit massa. Nullam faucibus sodales ornare. Mauris at ultricies ex, sit amet convallis lorem.
</p>
</body>
The navigation bar keeps hiding content under it. Initially i fixed it by putting a margin to the first title. But when I click on links on the same page, they get hidden under the navigation bar.
How can I fix it?
I also accept others suggestions, tips and hints to improve. :D
Cheers,
Tiago
The fixed nav bar is the problem. When you set something as fixed, it removes it from the DOM and subsequently all other content will be rendered as if it's not there. Meaning it will display content at the top of the page and then put hte navbar on top. You need to add padding to the body to bring it down. For example, if the nav bar height is 50px, add body {padding-top:50px} to your css.
Also - just looking at your code, if you are using the nav to target sections on the page via the href, you will need to add that as an id to the a link in the page - currently you have only listed a name for each link in the body. And they should be semantically listed as "section" as well (enclosing the heading and <p> elements of that section)- currently you have numerous h1 elements, but you should only have one per page with other headings being h2, h3 etc (it is fine to have a h1 for each section if using the section nomenclature because it infers that each section is semantically different from the others and therefore can have a new h1). hope this helps gavgrif
I'm making a "semantic" html5 model for all the articles in a website. This is what could be great :
<article>
<header>
<h2 id="title">MAIN TITLE</h2>
<h3 id="sub-title">SECOND TITLE</h3>
<img src="img.jpg" alt="article image"/>
</header>
<section id="main"><!-- use of section tag is optional here -->
<p>ARTICLE TEXT</p>
</section>
<footer>
<time datetime="2012-02-02">2 février 2012</time>
<span class="tags-label">Mots-clef :</span>
<h4 id="tag1">TAG 1</h4>
<h4 id="tag2">TAG 2</h4>
</footer>
</article>
But I want <header> and <section id="main"> to be ONE scrollable block at the top of the page while footer will be fixed at the bottom. I use a custom scrollbar (sly.js) which needs some extra wrapper divs. So I must have something like that :
<article>
<div id="first-scrollbar-wrapper"><div id="second-scrollbar-wrapper">
<header>
<h2 id="title">MAIN TITLE</h2>
<h3 id="sub-title">SECOND TITLE</h3>
<img src="img.jpg" alt="article image"/>
</header>
<section id="main">
<p>ARTICLE TEXT</p>
</section>
</div></div>
<footer>
<time datetime="2012-02-02">2 février 2012</time>
<span class="tags-label">Mots-clef :</span>
<h4 id="tag1">TAG 1</h4>
<h4 id="tag2">TAG 2</h4>
</footer>
</article>
QUESTION : Is it acceptable? Don't you think the extra wrapper divs are "breaking" the semantic flow?
But I want <header> and <section id="main"> to be ONE scrollable block at the top of the page while footer will be fixed at the bottom
You can declare
position: fixed;
for the <footer>.
This will obviate the need to surround <header> and <section id="main"> (or <main>) with a container <div>.
Edit:
I've just realised this doesn't work.
You'd be entirely forgiven for imagining that position:fixed works in exactly the same way as position:absolute.
ie. If an element with position:fixed has a parent with position:relative, the contained element will be fixed relative to its container.
But it isn't - and apparently, this is a perennial frustration.
So... here's a javascript to fix the problem and to enable
position:fixed-relative-to-parent
Example:
function fixFooter(article) {
var footer = article.getElementsByTagName('footer')[0];
var articleScrollTop = article.scrollTop;
var articleHeight = parseInt(window.getComputedStyle(article).getPropertyValue('height'));
var footerHeight = parseInt(window.getComputedStyle(footer).getPropertyValue('height'));
footerHeight += parseInt(window.getComputedStyle(footer).getPropertyValue('padding-top'));
footerHeight += parseInt(window.getComputedStyle(footer).getPropertyValue('padding-bottom'));
footerHeight += parseInt(window.getComputedStyle(footer).getPropertyValue('border-top-width'));
footerHeight += parseInt(window.getComputedStyle(footer).getPropertyValue('border-bottom-width'));
var footerTopPosition = articleScrollTop + articleHeight - footerHeight;
var footerTop = footerTopPosition + 'px';
footer.style.top = footerTop;
}
function initialiseArticlesFunction(i) {
return function(){
var article = document.getElementsByTagName('article')[i];
article.addEventListener('scroll',function(){fixFooter(article);},false);
}
}
function initialiseArticles() {
var initialiseArticles = [];
var articles = document.getElementsByTagName('article');
for (var i = 0; i < articles.length; i++) {
var footer = articles[i].getElementsByTagName('footer')[0];
if (window.getComputedStyle(footer).getPropertyValue('position') === 'fixed') {
footer.classList.add('fixed-relative-to-parent');
fixFooter(articles[i]);
}
initialiseArticles[i] = initialiseArticlesFunction(i);
initialiseArticles[i]();
}
}
window.addEventListener('load',initialiseArticles,false);
article {
position:relative;
display:inline-block;
margin: 0 60px 0 0;
padding:0;
border: 2px solid rgb(127,127,127);
width: 220px;
height: 400px;
overflow-y: scroll;
}
article footer {
display:block;
position: fixed;
width: 191px;
height: 120px;
padding:6px;
background-color: rgb(227,227,0);
}
.fixed-relative-to-parent {
position: absolute;
left: 0;
}
<article>
<header>
<h2 id="title">MAIN TITLE</h2>
<h3 id="sub-title">SECOND TITLE</h3>
<img src="img.jpg" alt="article image"/>
</header>
<section id="main"><!-- use of section tag is optional here -->
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non bibendum neque. Nam fringilla sit amet turpis at ultrices. Cras laoreet, justo id varius malesuada, orci dui volutpat dolor, quis varius sapien ligula sed lectus. Proin posuere facilisis orci. Maecenas condimentum fermentum purus ut porttitor. Quisque placerat ullamcorper urna, a tristique magna tempus et. Praesent rutrum sit amet quam ut eleifend. Integer tempor mauris ac orci faucibus malesuada. Nulla facilisi. Sed odio velit, iaculis in facilisis quis, sagittis eu erat.</p>p>
<p>Fusce ullamcorper varius ornare. Duis scelerisque molestie venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras eget dui commodo purus cursus luctus id id arcu. Quisque cursus euismod purus, vitae malesuada magna vestibulum at. Etiam dictum purus ac dui viverra, non vulputate arcu iaculis. Quisque eget commodo eros.</p>
<p>Nunc vel est eros. Maecenas commodo massa felis, sit amet feugiat neque imperdiet a. Curabitur non ligula posuere, condimentum orci nec, pulvinar metus. Suspendisse faucibus massa quis ex suscipit malesuada. Integer facilisis lacus vitae odio dapibus, et ultrices massa euismod. Nam ipsum ante, molestie ac accumsan id, interdum vitae orci. Aenean accumsan turpis ante, ut lobortis mi dapibus sed. Etiam magna urna, vehicula a mauris ac, aliquet vestibulum sapien. Sed eu nulla fringilla, lacinia libero ac, vestibulum velit. Sed sed lectus augue.</p>
<p>Pellentesque facilisis fermentum leo sit amet vehicula. Sed posuere neque a nibh lobortis egestas. Vivamus non massa ut ligula viverra volutpat nec non mi. Ut lacinia viverra ligula, sit amet placerat arcu egestas at. Suspendisse nec dui non felis ultrices suscipit pretium id erat. Aenean in mauris in magna pharetra vehicula non id elit. Maecenas eu urna fermentum, placerat ligula vitae, volutpat metus. Nullam aliquet nec justo at elementum. Proin gravida scelerisque faucibus. Duis dignissim justo rutrum lorem vestibulum, ut cursus dui efficitur. Donec vitae mollis quam. Donec maximus ipsum vel mi pulvinar molestie.</p>
<p>Fusce facilisis pharetra nulla nec imperdiet. Sed sit amet vulputate massa. Etiam semper arcu quis venenatis ornare. Suspendisse rhoncus libero tortor, sit amet ullamcorper mi elementum sit amet. Etiam eu tortor lacus. Nam ut enim nec dui ultricies auctor. Maecenas semper felis sit amet posuere tempus. Suspendisse volutpat vehicula nisi, vel consequat erat malesuada vitae. Fusce tempus lectus at lectus pretium ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer at accumsan sem. Donec semper nibh cursus posuere fringilla.</p>
</section>
<footer>
<time datetime="2012-02-02">2 février 2012</time>
<span class="tags-label">Mots-clef :</span>
<h4 id="tag1">TAG 1</h4>
<h4 id="tag2">TAG 2</h4>
</footer>
</article>
<article>
<header>
<h2 id="title">MAIN TITLE 2</h2>
<h3 id="sub-title">SECOND TITLE 2</h3>
<img src="img.jpg" alt="article image 2"/>
</header>
<section id="main"><!-- use of section tag is optional here -->
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non bibendum neque. Nam fringilla sit amet turpis at ultrices. Cras laoreet, justo id varius malesuada, orci dui volutpat dolor, quis varius sapien ligula sed lectus. Proin posuere facilisis orci. Maecenas condimentum fermentum purus ut porttitor. Quisque placerat ullamcorper urna, a tristique magna tempus et. Praesent rutrum sit amet quam ut eleifend. Integer tempor mauris ac orci faucibus malesuada. Nulla facilisi. Sed odio velit, iaculis in facilisis quis, sagittis eu erat.</p>p>
<p>Fusce ullamcorper varius ornare. Duis scelerisque molestie venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras eget dui commodo purus cursus luctus id id arcu. Quisque cursus euismod purus, vitae malesuada magna vestibulum at. Etiam dictum purus ac dui viverra, non vulputate arcu iaculis. Quisque eget commodo eros.</p>
<p>Nunc vel est eros. Maecenas commodo massa felis, sit amet feugiat neque imperdiet a. Curabitur non ligula posuere, condimentum orci nec, pulvinar metus. Suspendisse faucibus massa quis ex suscipit malesuada. Integer facilisis lacus vitae odio dapibus, et ultrices massa euismod. Nam ipsum ante, molestie ac accumsan id, interdum vitae orci. Aenean accumsan turpis ante, ut lobortis mi dapibus sed. Etiam magna urna, vehicula a mauris ac, aliquet vestibulum sapien. Sed eu nulla fringilla, lacinia libero ac, vestibulum velit. Sed sed lectus augue.</p>
<p>Pellentesque facilisis fermentum leo sit amet vehicula. Sed posuere neque a nibh lobortis egestas. Vivamus non massa ut ligula viverra volutpat nec non mi. Ut lacinia viverra ligula, sit amet placerat arcu egestas at. Suspendisse nec dui non felis ultrices suscipit pretium id erat. Aenean in mauris in magna pharetra vehicula non id elit. Maecenas eu urna fermentum, placerat ligula vitae, volutpat metus. Nullam aliquet nec justo at elementum. Proin gravida scelerisque faucibus. Duis dignissim justo rutrum lorem vestibulum, ut cursus dui efficitur. Donec vitae mollis quam. Donec maximus ipsum vel mi pulvinar molestie.</p>
<p>Fusce facilisis pharetra nulla nec imperdiet. Sed sit amet vulputate massa. Etiam semper arcu quis venenatis ornare. Suspendisse rhoncus libero tortor, sit amet ullamcorper mi elementum sit amet. Etiam eu tortor lacus. Nam ut enim nec dui ultricies auctor. Maecenas semper felis sit amet posuere tempus. Suspendisse volutpat vehicula nisi, vel consequat erat malesuada vitae. Fusce tempus lectus at lectus pretium ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer at accumsan sem. Donec semper nibh cursus posuere fringilla.</p>
</section>
<footer>
<time datetime="2012-02-02">2 février 2012</time>
<span class="tags-label">Mots-clef :</span>
<h4 id="tag1">TAG 1</h4>
<h4 id="tag2">TAG 2</h4>
</footer>
</article>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non bibendum neque. Nam fringilla sit amet turpis at ultrices. Cras laoreet, justo id varius malesuada, orci dui volutpat dolor, quis varius sapien ligula sed lectus. Proin posuere facilisis orci. Maecenas condimentum fermentum purus ut porttitor. Quisque placerat ullamcorper urna, a tristique magna tempus et. Praesent rutrum sit amet quam ut eleifend. Integer tempor mauris ac orci faucibus malesuada. Nulla facilisi. Sed odio velit, iaculis in facilisis quis, sagittis eu erat.</p>
<p>Fusce ullamcorper varius ornare. Duis scelerisque molestie venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras eget dui commodo purus cursus luctus id id arcu. Quisque cursus euismod purus, vitae malesuada magna vestibulum at. Etiam dictum purus ac dui viverra, non vulputate arcu iaculis. Quisque eget commodo eros.</p>
<p>Nunc vel est eros. Maecenas commodo massa felis, sit amet feugiat neque imperdiet a. Curabitur non ligula posuere, condimentum orci nec, pulvinar metus. Suspendisse faucibus massa quis ex suscipit malesuada. Integer facilisis lacus vitae odio dapibus, et ultrices massa euismod. Nam ipsum ante, molestie ac accumsan id, interdum vitae orci. Aenean accumsan turpis ante, ut lobortis mi dapibus sed. Etiam magna urna, vehicula a mauris ac, aliquet vestibulum sapien. Sed eu nulla fringilla, lacinia libero ac, vestibulum velit. Sed sed lectus augue.</p>
<p>Pellentesque facilisis fermentum leo sit amet vehicula. Sed posuere neque a nibh lobortis egestas. Vivamus non massa ut ligula viverra volutpat nec non mi. Ut lacinia viverra ligula, sit amet placerat arcu egestas at. Suspendisse nec dui non felis ultrices suscipit pretium id erat. Aenean in mauris in magna pharetra vehicula non id elit. Maecenas eu urna fermentum, placerat ligula vitae, volutpat metus. Nullam aliquet nec justo at elementum. Proin gravida scelerisque faucibus. Duis dignissim justo rutrum lorem vestibulum, ut cursus dui efficitur. Donec vitae mollis quam. Donec maximus ipsum vel mi pulvinar molestie.</p>
<p>Fusce facilisis pharetra nulla nec imperdiet. Sed sit amet vulputate massa. Etiam semper arcu quis venenatis ornare. Suspendisse rhoncus libero tortor, sit amet ullamcorper mi elementum sit amet. Etiam eu tortor lacus. Nam ut enim nec dui ultricies auctor. Maecenas semper felis sit amet posuere tempus. Suspendisse volutpat vehicula nisi, vel consequat erat malesuada vitae. Fusce tempus lectus at lectus pretium ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer at accumsan sem. Donec semper nibh cursus posuere fringilla.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non bibendum neque. Nam fringilla sit amet turpis at ultrices. Cras laoreet, justo id varius malesuada, orci dui volutpat dolor, quis varius sapien ligula sed lectus. Proin posuere facilisis orci. Maecenas condimentum fermentum purus ut porttitor. Quisque placerat ullamcorper urna, a tristique magna tempus et. Praesent rutrum sit amet quam ut eleifend. Integer tempor mauris ac orci faucibus malesuada. Nulla facilisi. Sed odio velit, iaculis in facilisis quis, sagittis eu erat.</p>
<p>Fusce ullamcorper varius ornare. Duis scelerisque molestie venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras eget dui commodo purus cursus luctus id id arcu. Quisque cursus euismod purus, vitae malesuada magna vestibulum at. Etiam dictum purus ac dui viverra, non vulputate arcu iaculis. Quisque eget commodo eros.</p>
<p>Nunc vel est eros. Maecenas commodo massa felis, sit amet feugiat neque imperdiet a. Curabitur non ligula posuere, condimentum orci nec, pulvinar metus. Suspendisse faucibus massa quis ex suscipit malesuada. Integer facilisis lacus vitae odio dapibus, et ultrices massa euismod. Nam ipsum ante, molestie ac accumsan id, interdum vitae orci. Aenean accumsan turpis ante, ut lobortis mi dapibus sed. Etiam magna urna, vehicula a mauris ac, aliquet vestibulum sapien. Sed eu nulla fringilla, lacinia libero ac, vestibulum velit. Sed sed lectus augue.</p>
<p>Pellentesque facilisis fermentum leo sit amet vehicula. Sed posuere neque a nibh lobortis egestas. Vivamus non massa ut ligula viverra volutpat nec non mi. Ut lacinia viverra ligula, sit amet placerat arcu egestas at. Suspendisse nec dui non felis ultrices suscipit pretium id erat. Aenean in mauris in magna pharetra vehicula non id elit. Maecenas eu urna fermentum, placerat ligula vitae, volutpat metus. Nullam aliquet nec justo at elementum. Proin gravida scelerisque faucibus. Duis dignissim justo rutrum lorem vestibulum, ut cursus dui efficitur. Donec vitae mollis quam. Donec maximus ipsum vel mi pulvinar molestie.</p>
<p>Fusce facilisis pharetra nulla nec imperdiet. Sed sit amet vulputate massa. Etiam semper arcu quis venenatis ornare. Suspendisse rhoncus libero tortor, sit amet ullamcorper mi elementum sit amet. Etiam eu tortor lacus. Nam ut enim nec dui ultricies auctor. Maecenas semper felis sit amet posuere tempus. Suspendisse volutpat vehicula nisi, vel consequat erat malesuada vitae. Fusce tempus lectus at lectus pretium ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer at accumsan sem. Donec semper nibh cursus posuere fringilla.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non bibendum neque. Nam fringilla sit amet turpis at ultrices. Cras laoreet, justo id varius malesuada, orci dui volutpat dolor, quis varius sapien ligula sed lectus. Proin posuere facilisis orci. Maecenas condimentum fermentum purus ut porttitor. Quisque placerat ullamcorper urna, a tristique magna tempus et. Praesent rutrum sit amet quam ut eleifend. Integer tempor mauris ac orci faucibus malesuada. Nulla facilisi. Sed odio velit, iaculis in facilisis quis, sagittis eu erat.</p>
<p>Fusce ullamcorper varius ornare. Duis scelerisque molestie venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras eget dui commodo purus cursus luctus id id arcu. Quisque cursus euismod purus, vitae malesuada magna vestibulum at. Etiam dictum purus ac dui viverra, non vulputate arcu iaculis. Quisque eget commodo eros.</p>
<p>Nunc vel est eros. Maecenas commodo massa felis, sit amet feugiat neque imperdiet a. Curabitur non ligula posuere, condimentum orci nec, pulvinar metus. Suspendisse faucibus massa quis ex suscipit malesuada. Integer facilisis lacus vitae odio dapibus, et ultrices massa euismod. Nam ipsum ante, molestie ac accumsan id, interdum vitae orci. Aenean accumsan turpis ante, ut lobortis mi dapibus sed. Etiam magna urna, vehicula a mauris ac, aliquet vestibulum sapien. Sed eu nulla fringilla, lacinia libero ac, vestibulum velit. Sed sed lectus augue.</p>
<p>Pellentesque facilisis fermentum leo sit amet vehicula. Sed posuere neque a nibh lobortis egestas. Vivamus non massa ut ligula viverra volutpat nec non mi. Ut lacinia viverra ligula, sit amet placerat arcu egestas at. Suspendisse nec dui non felis ultrices suscipit pretium id erat. Aenean in mauris in magna pharetra vehicula non id elit. Maecenas eu urna fermentum, placerat ligula vitae, volutpat metus. Nullam aliquet nec justo at elementum. Proin gravida scelerisque faucibus. Duis dignissim justo rutrum lorem vestibulum, ut cursus dui efficitur. Donec vitae mollis quam. Donec maximus ipsum vel mi pulvinar molestie.</p>
<p>Fusce facilisis pharetra nulla nec imperdiet. Sed sit amet vulputate massa. Etiam semper arcu quis venenatis ornare. Suspendisse rhoncus libero tortor, sit amet ullamcorper mi elementum sit amet. Etiam eu tortor lacus. Nam ut enim nec dui ultricies auctor. Maecenas semper felis sit amet posuere tempus. Suspendisse volutpat vehicula nisi, vel consequat erat malesuada vitae. Fusce tempus lectus at lectus pretium ultricies. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer at accumsan sem. Donec semper nibh cursus posuere fringilla.</p>
I have a h2 tag within a P and a div tag and somehow it is making the styles of my paragraphs not work correctly. In below example, the first paragraph, without the h2 tag behaves as expected. But as soon as I put an h2 tag in the rest of the paragraphs, it breaks my styles.
.column-4-layout .left-column P h2 {
display: inline-block;
padding: 0;
margin: 0;
color: yellow;
}
.column-4-layout .left-column P {
width: 470px;
margin-top: 50px;
color: red;
}
.column-4-layout .left-column P img {
width: 227px;
padding-right: 15px;
padding-bottom: 5px;
float: left;
}
.column-4-layout .right-column P {
width: 470px;
margin-top: 50px;
}
.column-4-layout .right-column P img {
width: 227px;
padding-right: 15px;
padding-bottom: 5px;
float: left;
}
<div class="column-4-layout">
<div class="left-column">
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id erat ultrices metus ornare elementum vel vitae odio. Vivamus feugiat eros sit amet aliquet efficitur. Vestibulum massa ligula, ullamcorper vitae malesuada et, viverra nec metus. Integer
at felis non odio interdum finibus sed ac purus. Vestibulum gravida lorem a augue faucibus, eget auctor lorem porta. Fusce vitae nibh laoreet, ultrices orci cursus, suscipit diam. Praesent vestibulum tellus ornare, gravida diam vel, sodales elit.
Sed lacus augue, pulvinar vel ornare vel, molestie nec diam. Sed vestibulum sed odio in vulputate. Suspendisse ut lacus sit amet dui porttitor convallis. Vestibulum mattis laoreet nulla luctus facilisis. Nunc efficitur ligula sagittis lectus commodo
molestie. Maecenas fringilla ipsum at est venenatis suscipit. Suspendisse quis pellentesque ligula. Sed quis ante nulla.</P>
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Nullam euismod bibendum eleifend. Aliquam pulvinar rhoncus elit et ullamcorper. Proin vel nisl ligula. Quisque pellentesque, ipsum sollicitudin finibus faucibus, massa orci luctus purus, sed interdum odio leo ut dui. Phasellus a mi non tellus faucibus
mattis. Morbi iaculis ac lorem lobortis elementum. Nunc sagittis libero et orci consequat iaculis. Duis magna arcu, consequat vel mollis non, elementum nec lacus. Etiam commodo in arcu sit amet ultrices. Sed massa magna, luctus in lacinia vel, congue
a elit. Integer lacinia ornare ligula, ut ultricies metus elementum ut. Quisque placerat arcu id metus congue egestas. Curabitur mollis sem vel tortor convallis consectetur.</P>
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Curabitur rhoncus tellus a pulvinar consequat. In sagittis gravida erat, id finibus est molestie non. Mauris dignissim pretium elementum. Sed a arcu vel lectus facilisis viverra. Vestibulum faucibus risus nec lorem scelerisque eleifend. Donec et
consectetur tellus. Vestibulum in dictum ligula, ut commodo quam. In in justo a nisl pretium faucibus non sit amet lacus. Morbi pharetra vestibulum tristique. Sed sem lorem, egestas a pharetra quis, aliquam quis sem. Integer fermentum est nisl,
eu finibus tellus gravida nec. Etiam egestas tincidunt justo, et auctor tellus interdum sed. Sed in orci id metus sollicitudin accumsan at ut neque. Ut lacinia ultrices justo, ac dictum sapien luctus non. Etiam blandit congue accumsan.</P>
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Nullam nulla ante, eleifend at lectus id, ultrices vehicula lorem. Pellentesque vel tempor massa. Praesent pulvinar sem ultricies nibh tincidunt tincidunt. Vestibulum sapien mauris, porta in semper sit amet, fermentum vel elit. Nullam sapien magna,
faucibus eu elit eu, congue suscipit est. Sed vitae gravida turpis, pretium finibus ex. Suspendisse lacinia condimentum erat, id condimentum erat molestie et. In rutrum luctus condimentum. Sed lacinia congue neque eget suscipit. Integer sed massa
luctus, efficitur ante et, sagittis est. Cras efficitur neque sed libero euismod cursus. Phasellus ac tincidunt metus. Fusce et turpis nisl. Ut in mattis ipsum. Donec ornare pharetra neque.</P>
</div>
<div class="right-column">
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id erat ultrices metus ornare elementum vel vitae odio. Vivamus feugiat eros sit amet aliquet efficitur. Vestibulum massa ligula, ullamcorper vitae malesuada et, viverra nec metus. Integer
at felis non odio interdum finibus sed ac purus. Vestibulum gravida lorem a augue faucibus, eget auctor lorem porta. Fusce vitae nibh laoreet, ultrices orci cursus, suscipit diam. Praesent vestibulum tellus ornare, gravida diam vel, sodales elit.
Sed lacus augue, pulvinar vel ornare vel, molestie nec diam. Sed vestibulum sed odio in vulputate. Suspendisse ut lacus sit amet dui porttitor convallis. Vestibulum mattis laoreet nulla luctus facilisis. Nunc efficitur ligula sagittis lectus commodo
molestie. Maecenas fringilla ipsum at est venenatis suscipit. Suspendisse quis pellentesque ligula. Sed quis ante nulla.</P>
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Nullam euismod bibendum eleifend. Aliquam pulvinar rhoncus elit et ullamcorper. Proin vel nisl ligula. Quisque pellentesque, ipsum sollicitudin finibus faucibus, massa orci luctus purus, sed interdum odio leo ut dui. Phasellus a mi non tellus faucibus
mattis. Morbi iaculis ac lorem lobortis elementum. Nunc sagittis libero et orci consequat iaculis. Duis magna arcu, consequat vel mollis non, elementum nec lacus. Etiam commodo in arcu sit amet ultrices. Sed massa magna, luctus in lacinia vel, congue
a elit. Integer lacinia ornare ligula, ut ultricies metus elementum ut. Quisque placerat arcu id metus congue egestas. Curabitur mollis sem vel tortor convallis consectetur.</P>
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Curabitur rhoncus tellus a pulvinar consequat. In sagittis gravida erat, id finibus est molestie non. Mauris dignissim pretium elementum. Sed a arcu vel lectus facilisis viverra. Vestibulum faucibus risus nec lorem scelerisque eleifend. Donec et
consectetur tellus. Vestibulum in dictum ligula, ut commodo quam. In in justo a nisl pretium faucibus non sit amet lacus. Morbi pharetra vestibulum tristique. Sed sem lorem, egestas a pharetra quis, aliquam quis sem. Integer fermentum est nisl,
eu finibus tellus gravida nec. Etiam egestas tincidunt justo, et auctor tellus interdum sed. Sed in orci id metus sollicitudin accumsan at ut neque. Ut lacinia ultrices justo, ac dictum sapien luctus non. Etiam blandit congue accumsan.</P>
<P>
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/189477/sample-image.jpg" />
<h2>Subgroup title</h2> Nullam nulla ante, eleifend at lectus id, ultrices vehicula lorem. Pellentesque vel tempor massa. Praesent pulvinar sem ultricies nibh tincidunt tincidunt. Vestibulum sapien mauris, porta in semper sit amet, fermentum vel elit. Nullam sapien magna,
faucibus eu elit eu, congue suscipit est. Sed vitae gravida turpis, pretium finibus ex. Suspendisse lacinia condimentum erat, id condimentum erat molestie et. In rutrum luctus condimentum. Sed lacinia congue neque eget suscipit. Integer sed massa
luctus, efficitur ante et, sagittis est. Cras efficitur neque sed libero euismod cursus. Phasellus ac tincidunt metus. Fusce et turpis nisl. Ut in mattis ipsum. Donec ornare pharetra neque.</P>
</div>
p elements can contain phrasing content only.
If you look at the console log for this Snippet, you'll see "This is a" only:
console.log(document.querySelector('p').innerHTML);
<p>This is a <h2>test</h2>.</p>
If you read this article https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p you see that an h2 tag isn't allowed inside a p tag.
In fact if you inspect the HTML with a browser you can see that the p tag is closed just before the h2 element.
Try changing the paragraphs with DIVs
You're misusing the header tags. Actually, according to the W3C, the P element can only contain other elements as listed here: Phrasing Elements.
This is something that search engines (especially Google) frown upon. It wouldn't be the most blatant black hat technique, but the feeling is that nothing should be subversive on your page, e.g. a header should be a header, not part of your paragraph.
I need the red box to expand with the blue box content, so they are always both the same size.
The red box is defined as:
.leftMenu{
float:left;
width:20%;
background-image:url(../images/leftMenuBG.jpg);
background-position:bottom;
background-color:#BFDAE3;
background-repeat:repeat-x;
}
Can't seem to get it to work, whatever I try! Any ideas? Thanks!
Simple solution: Use tables.
Semantic solution: Use faux columns.
You will need to wrap the red div around the blue div, so have the blue divs inside, floated right, and then have a clearing div after the blue divs.
<div style="border:solid red 2px;">
<div style="border:solid blue 2px;float:right;width:200px;">
<p>Content here</p>
</div>
<div style="clear:both;"></div>
</div>
Excuse the use of inline styles, these should be in a style sheet.
If you need each div to sit independently of each other and don't mind using JavaScript (as this is only a presentational layer) try this method.
You can use a jQuery plugin for that too. (for example, http://www.cssnewbie.com/equal-height-columns-with-jquery/)
But the Semantic solution: Use faux columns. from Magnar is nice too and doesn't require Javascript.
An additional 'faux column'-method is to (ab)use positioning.
Place both boxes inside a container that's floated (which makes it expand to accomodate floated children) and positioned relatively (which allows us to position child elements inside it).
Then, position the shortest column absolutely, and float the longest column. The container will take on the height of the floated child, and the div with position:absolute will take that height again.
A short example:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>Columns</title>
<style type="text/css">
html, body {
width: 100%;
}
#container {
width: 100%;
float: left;
position: relative;
border: 2px solid black;
}
#left-box {
position: absolute;
width: 40%;
border: 2px solid red;
background-color: #5555ee;
height: 100%;
}
#right-box {
float: right;
margin-right: 15%;
width: 40%;
border: 2px solid blue;
background-color: #3e3e3e;
}
</style>
</head>
<body>
<div id="container">
<div id="left-box">
- E - x - P - a - N - d - I - n - G -
</div>
<div id="right-box">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mattis eros ut sem sollicitudin ultricies. Vivamus pharetra, urna sit amet auctor mollis, risus sem ultrices quam, non condimentum enim leo sit amet tellus. Pellentesque id vehicula nisl. Nulla ut commodo ligula. Sed sit amet ligula purus, at suscipit leo. Nulla quis nulla id est aliquet vehicula. Suspendisse consectetur, nunc in hendrerit dignissim, nisl massa viverra quam, et faucibus augue lorem eu mi. Vestibulum commodo luctus ante, vel placerat metus ullamcorper vel. Sed id imperdiet orci. In hac habitasse platea dictumst. Praesent ac dui orci, vitae pharetra dolor.
</p>
<p>
Aenean enim metus, placerat at hendrerit in, hendrerit in velit. Cras tincidunt blandit sapien, a aliquet elit sollicitudin vitae. Quisque at ligula sem. In hac habitasse platea dictumst. Ut eu magna ipsum, id fringilla massa. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus consequat metus sed lectus dignissim posuere quis a felis. Mauris in consectetur arcu. Nullam fermentum adipiscing dignissim. Sed quis orci in magna viverra sollicitudin. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas condimentum lectus pretium tortor porta a hendrerit dui pharetra. Etiam est justo, bibendum vehicula vestibulum ac, mattis ut risus. Praesent dapibus nibh id enim vestibulum porta. Donec aliquam urna a diam varius blandit. Nulla interdum ante at arcu vehicula sagittis. Curabitur quam sapien, luctus ac sagittis vitae, tristique a odio. Nulla consequat gravida urna, at bibendum nisl ultricies ac.
</p>
<p>
Vivamus quis metus porta purus aliquet aliquet. Morbi sollicitudin orci ut ligula vehicula sollicitudin. Etiam sed lacus eget leo molestie ullamcorper sit amet ac urna. Cras vitae turpis in sapien dignissim molestie. Curabitur tellus purus, dignissim at adipiscing in, faucibus ac tortor. Duis vitae metus ac urna cursus consequat eget vel quam. Integer bibendum mauris enim, sit amet blandit sapien. Nam in lectus ante. Curabitur lacinia erat sit amet lectus malesuada facilisis. Phasellus et pellentesque enim. Fusce eget tristique est. Suspendisse id dui eu lorem congue tincidunt. Cras libero lectus, placerat eget tristique a, gravida vitae lorem. Sed nec venenatis sapien. Suspendisse tempus orci ut odio venenatis et cursus sem faucibus. Mauris commodo ultricies dictum. Curabitur iaculis, ligula sit amet lobortis hendrerit, eros orci elementum nisi, cursus lacinia nunc felis vitae erat. Donec id elementum ipsum.
</p>
<p>
Mauris id mi sed augue egestas vestibulum non a ipsum. Ut arcu purus, consequat in tincidunt in, pretium a dui. Cras in quam tellus, non ultricies nisi. Sed leo orci, gravida et luctus sed, eleifend quis odio. Praesent cursus feugiat neque, tincidunt malesuada libero egestas sit amet. Etiam nisi nisi, faucibus vitae accumsan sed, gravida ut lacus. Suspendisse hendrerit fringilla interdum. Cras fermentum nibh non eros gravida pretium et a sem. Sed non nisl dui, non commodo arcu. Donec nec massa mi, vel auctor odio. Curabitur sagittis velit id felis egestas iaculis. Nunc pharetra magna eu metus malesuada ut porta mi suscipit. Aenean vitae elit sit amet neque pellentesque malesuada. Aliquam eu nulla consectetur est adipiscing vulputate non a odio. Sed consectetur neque eros. Nulla fermentum vehicula vestibulum. Aenean eleifend, nisi eget porta accumsan, tellus orci tincidunt metus, volutpat lobortis quam augue commodo tellus. Aenean consectetur pretium vestibulum. Pellentesque a scelerisque sem. Cras pellentesque tortor euismod magna viverra mollis.
</p>
<p>
Mauris dignissim sodales placerat. Sed id interdum erat. Nunc sagittis, nunc in auctor ullamcorper, nisi dolor commodo sem, sit amet aliquam diam dolor posuere est. Ut vestibulum elit ut urna imperdiet non tincidunt sapien euismod. Fusce ut sem erat, aliquam accumsan metus. Proin sed velit nec velit laoreet dignissim at sit amet ante. Pellentesque ac dolor non nulla dapibus lacinia. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse non nisl diam. Sed et ligula sed libero porttitor semper eget eu elit. Phasellus quis massa dolor. Phasellus ac justo ac diam ultrices iaculis quis at odio. Fusce eget nisi nunc. Cras cursus, dui eget mattis rutrum, arcu dolor sollicitudin nibh, eu congue augue quam ut leo. Praesent in est nulla, eu ullamcorper enim. Nullam in adipiscing ligula.
</p>
</div>
</div>
</body>