html css aligning elements in a div - html

I am using CSS3 and HTML5 with Sublime and I am trying to align perfectly three elements inside a div but I don't know how to do that. The elements are located in the second div and they are a button and two images.
h1 {
margin-left: 510px;
}
div {
column-count: 2;
padding-left: 50px padding-right: 50px;
}
button {
background-color: red;
width: 100px;
height: 70px;
margin-left: 50px;
margin-top: 50px;
}
/*
div img {
margin-left: 735px;
width:304px;
height:228px;
visibility:hidden;
} */
#myImageId {
margin-left: 35px;
width: 304px;
height: 228px;
visibility: visible;
}
#myImageId2 {
margin-left: 35px;
width: 304px;
height: 228px;
visibility: visible;
}
<h1>Lorem Ipsum</h1>
<br>
<div>
<h3>Cos’è Lorem Ipsum?</h3>
Lorem Ipsum è un testo segnaposto utilizzato nel settore della tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di caratteri e li assemblò per preparare
un testo campione. È sopravvissuto non solo a più di cinque secoli, ma anche al passaggio alla videoimpaginazione, pervenendoci sostanzialmente inalterato. Fu reso popolare, negli anni ’60, con la diffusione dei fogli di caratteri trasferibili “Letraset”,
che contenevano passaggi del Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker, che includeva versioni del Lorem Ipsum.
<br>
<h3>Perchè lo utilizziamo?</h3>
È universalmente riconosciuto che un lettore che osserva il layout di una pagina viene distratto dal contenuto testuale se questo è leggibile. Lo scopo dell’utilizzo del Lorem Ipsum è che offre una normale distribuzione delle lettere (al contrario di
quanto avviene se si utilizzano brevi frasi ripetute, ad esempio “testo qui”), apparendo come un normale blocco di testo leggibile. Molti software di impaginazione e di web design utilizzano Lorem Ipsum come testo modello. Molte versioni del testo sono
state prodotte negli anni, a volte casualmente, a volte di proposito (ad esempio inserendo passaggi ironici).
</div>
<br>
<div>
<button type="button" onclick="showImage()">Show/Hide image!</button>
<img src="http://random-ize.com/lorem-ipsum-generators/lorem-ipsum/lorem-ipsum.jpg" alt="Lorem" id="myImageId">
<img src="http://www.metal-archives.com/images/1/5/5/0/15500_logo.jpg" alt="Lorem2" id="myImageId2">
</div>

I think that with a display flex you can fix it.
Adding a
display: flex;
to the container, the items inside him will fit the container perfectly.
I recommend to see the compatibility in http://caniuse.com/#search=flex
and checking this article by Sean Fioritto
Here's my codepen with an example of how flexbox works in your case http://codepen.io/buenopw/pen/qaJYWN

I suggest you to create container or wrapper class instead of edit the properties of tags, specially div, h1 which is very common across the whole page.
please have a look at
https://plnkr.co/edit/ShRKKsPHd8vcBTqW25L1?p=preview
if you want them to fit the width of the page, then those children elements should not have fixed size.

Related

Align each text correctly with It's respective image

I want to make a list of fish with their respective descriptions aligned with their image. As you can see, "Saumon" is roughly aligned with it's image, but "Truite" isn't at all, so much that it's with a wrong image. How can I align it correctly with all window sizes? Thank you in advance.
Here is my code
<img class="imgfish" src="/images/saumon.png" alt="Saumon" />
<h3 class="titlefish">Saumon</h3>
<p>
Le saumon est un poisson gras à la chair rosée, de la même famille que la
truite ou l'omble. Il nait et se reproduit en eau douce, mais vit dans
l'océan. Il existe plus de 60 sortes de saumon et il a été le poisson le
plus consommé sur terre depuis la préhistoire.
</p>
<img class="imgfish" src="/images/truite.png" alt="Saumon" />
<h3 class="titlefish">Truite</h3>
<p>
La truite est un poisson que l’on pêche dans les rivières et les lacs.
Elle appartient à la famille de salmonidés qui comprend entre autres, le
saumon, le touladi, l’omble chevalier. La truite est une excellente source
d’acides gras omégas-3, reconnus pour limiter l’apparition de certains
cancers et certaines maladies cardio-vasculaires.
</p>
CSS
.imgfish {
float: left;
clear: left;
width: 400px;
padding-top: 0rem;
border-radius: 15px;
max-width: 40vw;
margin: 30px;
}
.titlefish {
margin-bottom: 1rem;
}
And here are the results
As I mention in the comment you need to use "grid layout".
body{
display: flex;
justify-content: center;
align-items: center;
}
#container {
display: grid;
grid-template-columns: 0.5fr 1fr;
grid-template-rows: 1fr 1fr 1fr;
gap: 0px 0px;
grid-template-areas:
"a b"
"c d"
"e f";
row-gap: 5px;
width: 80%;
height: 100%;
}
img{
max-width: 400px;
max-height: 400px;
}
#container:nth-child(1){
/*First Image*/
grid-area: a;
}
#container:nth-child(2){
/*Description of first image*/
grid-area: b;
}
<div id="container">
<img class="imgfish" src="https://images.unsplash.com/photo-1633885096653-53ea6830e77a?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80" alt="Saumon" />
<div class="description">
<h3 class="titlefish">Saumon</h3>
<p>
Le saumon est un poisson gras à la chair rosée, de la même famille que la
truite ou l'omble. Il nait et se reproduit en eau douce, mais vit dans
l'océan. Il existe plus de 60 sortes de saumon et il a été le poisson le
plus consommé sur terre depuis la préhistoire.
</p>
</div>
<img class="imgfish" src="https://images.unsplash.com/photo-1633884941685-dd89adc11ab8?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80" alt="Saumon" />
<div class="description">
<h3 class="titlefish">Truite</h3>
<p>
La truite est un poisson que l’on pêche dans les rivières et les lacs.
Elle appartient à la famille de salmonidés qui comprend entre autres, le
saumon, le touladi, l’omble chevalier. La truite est une excellente source
d’acides gras omégas-3, reconnus pour limiter l’apparition de certains
cancers et certaines maladies cardio-vasculaires.
</p>
</div>
<img class="imgfish" src="https://images.unsplash.com/photo-1633884941685-dd89adc11ab8?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=687&q=80" alt="Saumon" />
<div class="description">
<h3 class="titlefish">Something else</h3>
<p>
La truite est un poisson que l’on pêche dans les rivières et les lacs.
Elle appartient à la famille de salmonidés qui comprend entre autres, le
saumon, le touladi, l’omble chevalier. La truite est une excellente source
d’acides gras omégas-3, reconnus pour limiter l’apparition de certains
cancers et certaines maladies cardio-vasculaires.
</p>
</div>
You should post your code to have a specific answer.
You could put the image and its description within the same parent div, you could use a table, etc. It depends on your current code.

Can't make the bootstrap collapsed nav fixed

I need two navs in my website: one fixed, other show-hide on click. When I click to show de first nav, it can't be above the second nav and I did it. But when scroll and I click to show the first nav, I can't get it fixed, and is not working the position:fixed.
I'm using bootstrap collapse (http://www.w3schools.com/bootstrap/bootstrap_collapse.asp)
I just need that the first nav be fixed when scroll.
Obs: sorry if my english is not perfect =P
https://jsfiddle.net/8o8hr8qb/1/
.panel {
width: 100%;
z-index: 999;
background: #000;
border: none;
border-radius: 0;
color: #fff;
margin-bottom: 0;
top: 0}
.teste-menu {
width: 100%;
background: #ccc;
position: fixed;
z-index: 99;
top: auto;}
.collapse.menu-visivel {
display: block;
visibility: visible;}
.btn-info {
float: right;
right: 45px;
border-radius: 0;
background: #000;
border-color: #000;
position: fixed;
z-index: 999;}
<div class="panel panel-default">
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">This nav need to be fixed</div>
</div>
<a data-toggle="collapse" href="#collapse1">
<button type="button" class="btn btn-info">▲</button>
</a>
</div>
<div class="panel panel-default teste-menu">
<div id="collapse1" class="panel-collapse collapse menu-visivel">
<div class="panel-body">Fixed nav menu</div>
</div>
</div>
Your fixed nav menu must be inside the same container to expand its height
<div id="container" class="panel panel-default">
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">This nav need to be fixed</div>
</div>
<a data-toggle="collapse" href="#collapse1">
<button type="button" class="btn btn-info">▲</button>
</a>
<div class="panel panel-default teste-menu">
<div id="collapse1" class="panel-collapse collapse menu-visivel">
<div class="panel-body">Fixed nav menu</div>
</div>
</div>
</div>
Then you need to fix the container
#container{position: fixed; top:0;height: auto;}
I've updated your jsfiddle
Use Javascript catch event scroll to set first nav fixe, but i think it good solve.
You should set second inside first nav like :
<div class="panel panel-default teste-menu">
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">This nav need to be fixed</div>
</div>
<a data-toggle="collapse" href="#collapse1">
<button type="button" class="btn btn-info">▲</button>
</a>
<div class="panel panel-default ">
<div id="collapse1" class="panel-collapse collapse menu-visivel">
<div class="panel-body">Fixed nav menu</div>
</div>
</div>
</div>
the problem here is clear understanding. As much as I can understand, you want something like this.
Try clicking the button as well scroll the page.
Let me know in comments, what exactly should happen or share a screenshot or design if you can't explain it in code.
Here i have created a div with class fixed'and addedposition:fixed` to it. so that the menu is always available.
.fixed {
position: fixed;
width: 100%;
top: 0;
}
.panel {
width: 100%;
z-index: 999;
background: #000!important;
border: none;
border-radius: 0;
color: #fff;
margin-bottom: 0!important;
top: 0
}
.teste-menu {
width: 100%;
background: #ccc!important;
z-index: 99;
top: auto;
}
.collapse.menu-visivel {
display: block;
visibility: visible;
}
.btn-info {
float: right;
right: 45px;
border-radius: 0;
background: #000;
border-color: #000;
position: fixed;
z-index: 999;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<div class="fixed">
<div class="panel panel-default">
<div id="collapse1" class="panel-collapse collapse">
<div class="panel-body">This nav need to be fixed</div>
</div>
<a data-toggle="collapse" href="#collapse1">
<button type="button" class="btn btn-info">▲</button>
</a>
</div>
<div class="panel panel-default teste-menu">
<div id="collapse1" class="panel-collapse collapse menu-visivel">
<div class="panel-body">Fixed nav menu</div>
</div>
</div>
</div>
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem
Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente
quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido
pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60,
quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica
e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração
eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus
PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos
de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e
mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor
desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na
década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria
tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto
para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica
como Aldus PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro
de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem
Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker. Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando
um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum sobreviveu não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. Se
popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.

100% height Sidebar and a Footer who wont stay below it

I need help with a combination of a sticky footer, and a content area that has a sidebar.
Here's a code snippet:
html, body {
height: 100%;
}
/* Force Footer to Stay Down */
#outtermost-wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -50px;
}
.container-fluid {
max-width: 960px;
padding: 0;
margin: 0;
border: 1px dotted pink;
}
#page-header {
border: 3px dotted blue;
}
.chart-nav {
border: 2px solid green;
}
#page-content {
border: 3px dashed green;
}
.chart-sidebar-wrapper {
width: 145px;
}
.faux-sidebar-wrapper {
background-color: #E8E8E8;
min-height: 100px;
position: absolute;
top: 55px; /* Top Nav + Chart Nav Heights (ESTIMATED FOR THIS EXAMPLE)*/
bottom: 50px; /* Footer Height */
width: 100%;
}
nav.navbar-default {
margin-bottom: 50px;
width: 100%;
}
.faux-sidebar {
margin: 0 0 0 155px;
padding: 0;
position: relative;
height: 100%;
background-color: #F8F8F8;
border-left: 1px solid fuschia;
min-height: 100px;
}
.footer-push {
clear: both;
border: 3px solid pink;
height: 50px;
}
#page-footer {
width: 100%;
height: 50px;
border: 3px solid red;
}
<div id="outtermost-wrapper">
<div id="page-header" class="container-fluid">
HEADER - Blue Dotted - Stays at the top
</div>
<div id="page-content" class="container-fluid">
<div class="chart-nav">
SUB HEADER - Green Solid - Stays at the top
</div>
<div class="faux-sidebar-wrapper">
<div class="chart-sidebar-wrapper">
<nav class="navbar-default navbar-static-side">
<ul class="nav metismenu">
<li>Menu Item</li>
<li>Menu Item</li>
<li>Menu Item</li>
</ul>
</nav>
</div>
<div class="faux-sidebar">
<div class="row main">
<div>Actual Page Content with Widgets and What Not</div>
</div>
</div>
</div>
<div class="footer-push"></div>
</div>
</div>
<div id="page-footer" class="container-fluid">
FOOTER - Red Solid - Stay below the and not lift off the bottom of the page for short content.
</div>
It looks something like this,
My problem is that I need the sidebar (see the hyperlinks) to stretch all the way to the footer (Its supposed to have a thin border on the right) and I also need the footer to not lift up off the bottom of the window when the content is short.
P.S. I'm using bootstrap if that helps.
Please help, thank you.
Here is a layout that I think represents what you're going for - check out the jsFiddle link and resize the page. You can see that for short content, the footer lays at the bottom of the page. For longer content, the content pushes the footer down past the bottom of the page and the page scrolls.
Solution adapted from the code in this article. The only caveat is that for this solution to work, the footer needs to have a fixed height (in this case 60px).
JSFiddle: https://jsfiddle.net/2gcxvjms/
Live Demo:
html, body {
margin:0;
padding:0;
height:100%;
}
#container {
min-height:100%;
position:relative;
}
#header {
background:#ff0;
padding:10px;
}
#subheader {
padding: 10px;
background: lightblue;
}
#body {
padding-bottom:60px;
overflow: auto;
/* Height of the footer */
}
#footer {
position:absolute;
bottom:0;
width:100%;
height:60px;
/* Height of the footer */
background:#6cf;
}
/* other non-essential CSS */
#header p, #header h1 {
margin:0;
padding:10px 0 0 10px;
}
#footer p {
margin:0;
padding:10px;
}
#c1 {
float: left;
width: 50%;
}
#c2 {
float: left;
width: 50%;
height: 100%;
}
<div id="container">
<div id="header">
<h1>Header 1 Text</h1>
</div>
<div id="subheader">
<h2>Header 2 Text</h2>
</div>
<div id="body">
<div id="c1">
Column 1 Text<br />
Column 1 Text<br />
Column 1 Text<br />
Column 1 Text<br />
Column 1 Text<br />
Column 1 Text<br />
</div>
<div id="c2">
Column 2 Text<br />
Column 2 Text<br />
Column 2 Text<br />
Column 2 Text<br />
Column 2 Text<br />
Column 2 Text<br />
</div>
</div>
<div id="footer">
Footer Text
</div>
</div>
Here's a version of your layout using navbars fixed to the top and a fixed-sidebar so your main-content scrolls under everything. Then you can layer the sidebar and footer to either be over or under one another. Right now it looks attached but the CSS is easily changed so one could cover the other.
The sidebar is hidden on viewports under 360px but can be restored by removing to media query.
Hope it helps.
body,
html {
position: relative;
margin-top: 125px;
margin-bottom: 50px;
}
.navbar.navbar-custom {
border-radius: 0px;
border: none;
background: #337ab7;
border-bottom: 1px solid #ff0;
}
.navbar-custom .upper-nav {
font-size: 20px;
padding: 9px 20px;
height: 50px;
color: #337ab7;
background-color: #fff;
}
.navbar-custom .upper-nav img {
margin-top: 0px;
}
.navbar-custom .navbar-nav {
margin-right: 30px;
}
.navbar-custom .nav-buttons {
border-radius: 0px;
background: none;
border: none;
color: #337ab7;
}
.navbar.navbar-custom .btn-group .dropdown-menu > li > a {
color: #fff;
}
.navbar.navbar-custom .btn-group .dropdown-menu > li > a:hover {
color: #444;
}
.navbar.navbar-custom .navbar-nav > li > a {
color: #fff;
border: none;
}
.navbar.navbar-custom .navbar-brand {
color: #fff;
}
.navbar.navbar-custom .dropdown-menu {
background: #266080;
}
.navbar-custom .navbar-nav .open .dropdown-menu > li > a,
.navbar-custom .navbar-nav .open .dropdown-menu {
color: #fff;
border: none;
}
.navbar-custom .navbar-nav .open .dropdown-menu > li >a:hover,
.navbar-custom .navbar-nav .open .dropdown-menu:hover {
color: #fff;
border: none;
}
.navbar.navbar-custom .navbar-toggle,
.navbar.navbar-custom .navbar-toggle:focus,
.navbar.navbar-custom .navbar-toggle:hover {
background: none;
outline: none;
box-shadow: none;
border: none;
color: #fff;
}
.sidebar-fixed {
margin-top: 100px;
padding: 5px 18px;
position: fixed;
width: 200px;
height: 100%;
top: 0;
left: 0;
background: #337ab7;
border-right: 1px solid #ff0;
z-index: 1500;
}
ul.sidebar-list {
list-style: none;
display: inline;
text-align: left;
}
ul.sidebar-list > li {
font-size: 18px;
padding-bottom: 25px;
}
ul.sidebar-list > li > a {
color: #fff;
text-decoration: none;
}
.main-content .well {
background-color: transparent;
border: 3px solid #428bca;
border-radius: 0px;
text-align: center;
font-size: 25px;
}
.main-content {
margin-left: 200px;
}
.footer {
vertical-align: center;
position: fixed;
bottom: 0;
width: 100%;
height: 50px;
background-color: #337ab7;
padding: 12px 0;
z-index: 3100;
}
ul.footer-nav > li {
margin-top: 5px;
list-style: none;
vertical-align: center;
text-align: right;
}
ul.footer-nav > li > a {
text-decoration: none;
color: #fff;
}
#media (max-width: 768px) {
.navbar-custom .navbar-nav {
margin-right: 0;
}
.navbar-custom .navbar-nav > li > a {
color: #fff;
}
.sidebar-fixed {
margin-top: 104px;
width: 100px;
}
.main-content {
margin-left: 100px;
padding: 0;
}
ul.sidebar-list > li {
font-size: 14px;
padding-bottom: 25px;
}
.navbar-custom .navbar-collapse {
margin-left: 100px;
border: none;
}
}
#media (max-width: 360px) {
.sidebar-fixed {
display: none;
}
.main-content {
margin-left: 0;
padding: 0;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<div class="container-fluid">
<nav class="navbar navbar-default navbar-fixed-top navbar-custom" role="navigation">
<div class="upper-nav">
<img src="http://placehold.it/150x30/337ab7/fff?text=Logo" alt="" />
<div class="btn-group pull-right">
<button type="button" class="btn btn-default dropdown-toggle nav-buttons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="glyphicon glyphicon-user" </span>
</button>
<ul class="dropdown-menu">
<li>Action
</li>
</ul>
</div>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default dropdown-toggle nav-buttons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="glyphicon glyphicon-inbox" </span>
</button>
<ul class="dropdown-menu">
<li>Action
</li>
</ul>
</div>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default dropdown-toggle nav-buttons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="glyphicon glyphicon-off" </span>
</button>
<ul class="dropdown-menu">
<li>Action
</li>
</ul>
</div>
</div>
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="glyphicon glyphicon-plus"></span>
</button> <a class="navbar-brand" href="#">Home</a>
</div>
<div class="collapse navbar-collapse" id="navbar-collapse">
<ul class="nav navbar-nav navbar-right">
<li class="dropdown"> Menu Item <span class="caret"></span>
<ul class="dropdown-menu">
<li>Menun Item 1
</li>
<li>Menun Item 2
</li>
</ul>
</li>
<li class="dropdown"> Menu Item <span class="caret"></span>
<ul class="dropdown-menu">
<li>Menun Item 1
</li>
<li>Menun Item 2
</li>
</ul>
</li>
<li class="dropdown"> Menu Item <span class="caret"></span>
<ul class="dropdown-menu">
<li>Menun Item 1
</li>
<li>Menun Item 2
</li>
</ul>
</li>
</ul>
</div>
</nav>
</div>
<div class="container-fluid">
<div class="sidebar-fixed">
<ul class="sidebar-list">
<li> About
</li>
<li> Contact
</li>
<li> Products
</li>
<li> Blog
</li>
</ul>
</div>
<div class="main-content">
<div class="container-fluid">
<div class="well"> Bootstrap 3
</div>
<p>Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un peintre anonyme assembla ensemble des morceaux
de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce
à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker.Le Lorem Ipsum est simplement du faux texte employé dans la composition
et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un peintre anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a
pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum,
et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker.Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem I</p>
<p>Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un peintre anonyme assembla ensemble des morceaux
de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce
à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker.Le Lorem Ipsum est simplement du faux texte employé dans la composition
et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un peintre anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a
pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum,
et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker.Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem I</p>
<p>Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un peintre anonyme assembla ensemble des morceaux
de texte pour réaliser un livre spécimen de polices de texte. Il n'a pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce
à la vente de feuilles Letraset contenant des passages du Lorem Ipsum, et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker.Le Lorem Ipsum est simplement du faux texte employé dans la composition
et la mise en page avant impression. Le Lorem Ipsum est le faux texte standard de l'imprimerie depuis les années 1500, quand un peintre anonyme assembla ensemble des morceaux de texte pour réaliser un livre spécimen de polices de texte. Il n'a
pas fait que survivre cinq siècles, mais s'est aussi adapté à la bureautique informatique, sans que son contenu n'en soit modifié. Il a été popularisé dans les années 1960 grâce à la vente de feuilles Letraset contenant des passages du Lorem Ipsum,
et, plus récemment, par son inclusion dans des applications de mise en page de texte, comme Aldus PageMaker.Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression. Le Lorem I</p>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<ul class="footer-nav">
<li>Copyright © 2015
</li>
</ul>
</div>
</footer>
So from my comments I made a very simple version to show how little code is needed to achieve what you want
Edit:
Updated my code sample to a snippet instead of a fiddle.
And this sample can be upgraded to use flex with a few changes of the html/css.
html,
body { height: 100%; margin: 0 }
body, .main-inner {
display: table;
width: 100%;
height: 100%
}
.page-row {
display: table-row;
height: 1px;
}
.page-row-expanded { height: 100%; }
.item1, .item2 {
width: 29%;
box-sizing: border-box;
display: table-cell;
height: 100%
}
.item2 {
width: 70%;
}
.header-inner, .footer-inner, .item1, .item2 {
border: 1px solid black
}
<header class="page-row">
<div class="header-inner">
<h1>Site Title</h1>
</div>
</header>
<header class="page-row">
<div class="header-inner">
<h1>Sub Site Title</h1>
</div>
</header>
<main class="page-row page-row-expanded">
<div class="main-inner">
<div class="item1">
Menu
</div>
<div class="item2">
Sample <br>
Content <br>
</div>
</div>
</main>
<footer class="page-row">
<div class="footer-inner">
<p>Copyright, blah blah blah.</p>
</div>
</footer>

Why aren't the right and left floats stacking together? Where does the space between them come from?

I bet this is probably basic stuff, I've just never come across it before. So, the code:
I've got a h1 followed by a p, followed by the same thing twice. So it goes h1 + p + h1 + p + h1 + p ;
I've floated the h1's to the left, with a 29% width ;
I've floated the p's to the right, width a 69% width ;
My question:
Why are the h1's not stacking up together? I notice the first two are. Why isn't the third one doing the same? Why is it top-aligned with the second paragraph (notice that if you change the p's bottom margin, the h1 follows it)? What am I missing about float behavior?
Here's the example at tinkerbin : http://tinkerbin.com/IUVovfjM
Here's the code:
<head>
<style>
h1, p, body{
margin: 0;
padding: 0;
line-height: 1.4;
font: inherit;
}
h1{
float: right;
width: 29%;
background-color: lightblue;
}
p{
float: left;
width: 69%;
background-color: indianred;
}
</style>
</head>
<body>
<h1>This Is The Title</h1>
<p>Lorem Ipsum badum badum baei.A primeira exposição apresenta, através de elementos multimédia, a evolução do dinheiro, com especial referência ao espaço que hoje é Portugal. A exposição termina com um núcleo dedicado à produção das notas, em que materiais e máquinas ilustram as diferentes fases da vida da nota, desde a sua concepção artística até à sua impressão, assim como os principais elementos de segurança que lhe estão associados.</p>
<h1>This Is The Title</h1>
<p>Lorem Ipsum badum badum baei.A primeira exposição apresenta, através de elementos multimédia, a evolução do dinheiro, com especial referência ao espaço que hoje é Portugal. A exposição termina com um núcleo dedicado à produção das notas, em que materiais e máquinas ilustram as diferentes fases da vida da nota, desde a sua concepção artística até à sua impressão, assim como os principais elementos de segurança que lhe estão associados.</p>
<h1>This Is The Title</h1>
<p>Lorem Ipsum badum badum baei.A primeira exposição apresenta, através de elementos multimédia, a evolução do dinheiro, com especial referência ao espaço que hoje é Portugal. A exposição termina com um núcleo dedicado à produção das notas, em que materiais e máquinas ilustram as diferentes fases da vida da nota, desde a sua concepção artística até à sua impressão, assim como os principais elementos de segurança que lhe estão associados.</p>
</body>
Thanks in advance.
Why?
Taken from CSS specification:
"A float is a box that is shifted to the left or right on the current line." - http://www.w3.org/TR/CSS2/visuren.html#floats
"The outer top of a floating box may not be higher than the outer top of any block or floated box generated by an element earlier in the source document." - item #5 at http://www.w3.org/TR/CSS2/visuren.html#float-position
So, it is the order of your HTML elements which is doing this.
Don't change your CSS, play only with the headers and paragraphs, and you will get the "why": http://tinkerbin.com/xex2Pykn
To achieve the stacking you want, without changing the CSS, you may try this:
<p>Lorem Ipsum badum badum baei.A primeira exposição apresenta, através de elementos multimédia, a evolução do dinheiro, com especial referência ao espaço que hoje é Portugal. A exposição termina com um núcleo dedicado à produção das notas, em que materiais e máquinas ilustram as diferentes fases da vida da nota, desde a sua concepção artística até à sua impressão, assim como os principais elementos de segurança que lhe estão associados.</p>
<h1>This Is The Title</h1>
<h1>This Is The Title</h1>
<h1>This Is The Title</h1>
<p>Lorem Ipsum badum badum baei.A primeira exposição apresenta, através de elementos multimédia, a evolução do dinheiro, com especial referência ao espaço que hoje é Portugal. A exposição termina com um núcleo dedicado à produção das notas, em que materiais e máquinas ilustram as diferentes fases da vida da nota, desde a sua concepção artística até à sua impressão, assim como os principais elementos de segurança que lhe estão associados.</p>
<p>Lorem Ipsum badum badum baei.A primeira exposição apresenta, através de elementos multimédia, a evolução do dinheiro, com especial referência ao espaço que hoje é Portugal. A exposição termina com um núcleo dedicado à produção das notas, em que materiais e máquinas ilustram as diferentes fases da vida da nota, desde a sua concepção artística até à sua impressão, assim como os principais elementos de segurança que lhe estão associados.</p>
There are several other possible solutions, changing the CSS and/or the HTML structure.
http://tinkerbin.com/wMLrXlfQ
Add clear: both; to the h1 and it would appear properly.

table wont respect a 25px padding in IE7

I need to set a template for mailing using a table,
I looks fine:
but in Ie7 it does not respect its dimensions/margins/paddings
Markup:
HTML:
<table>
<tr>
<th>
<h1>Esta semana hablamos de....</h1>
</th>
</tr>
<tr>
<td>
<h2>Nuestra Cultura</h2>
</td>
</tr>
<tr>
<td>
<p>
Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, quedando esencialmente igual al original. Fue popularizado en los 60s con la creación de las hojas "Letraset", las cuales contenian pasajes de Lorem Ipsum, y más recientemente con software de autoedición, como por ejemplo Aldus PageMaker, el cual incluye versiones de Lorem Ipsum.
</p>
<p>
Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, quedando esencialmente igual al original.
</p>
</td>
</tr>
</table>
CSS:
body{
background:#fAfAfA;
}
table {
position:relative;
width:650px;
background:url(fnd.jpg) center bottom no-repeat;
font-family:'Myriad Pro',arial;
margin:0 auto;
padding:0 25px 85px;
border-collapse:collapse;
border-spacing: 0;
display:block;
}
table th h1 {
font-size:35px;
color:#808080;
}
h1 {
text-align:left;
}
table td h2 {
font-weight:700;
margin:0;
font-size:21px;
}
h2,p {
padding:0px 0px 0px 20px;
}
h2{
padding-top:20px;}
table td {
background:#FFF;
}
td,th,tr {
border:0;
margin:0;
width:600px;
}
-edit-
PRINTS
I don't think i am using any special property, am i?
-EDIT-
Basically i only need a 25px padding in the table, but it doesn't work!!!
Few things to take care of:
don't set paddings on <table> element - IE does not work ok with that
always define font-family for your headings - IE will ignore and use default fonts instead if font family is defined only on body (serif usually)
write all your css styles inline (I left them as in sample but you should really write all css inline)
always define vertical-align:top; to your td and th elements unless you want it to be something else
always define colors to your <a> elements
always set <table cellpadding="0"> directly on the table element - css does not reset cellpadding property.
DO NOT use floats - never. You can use divs for wrapping and setting widths - just don't float them
in some cases on longer mailings headings or paragraphs tend to disappear while scrolling the mail in IE - fix that by applying zoom:1 to problematic element.
There are some other catches but already following this notes will give you satisfactory results cross platforms.
Try this solution:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<style type="text/css">
body{
background:#fAfAfA;
}
#wrapper {
width:650px;margin:0 auto;
padding:25px;
background:red;
}
table {
position:relative;
font-family:"Myriad Pro", Arial, Helvetica, sans-serif;
margin:0 auto;
padding:0;
border-collapse:collapse;
border-spacing:0;
}
table th {
padding:0;
text-align:left;
vertical-align:top;
}
table th h1 {
font-size:35px;
font-family:"Myriad Pro", Arial, Helvetica, sans-serif;
color:#808080;
margin:0;
padding:0 40px 15px 0;
}
table td {
background:#fff;
padding:0 20px;
vertical-align:top;
}
table td h2 {
margin:0;
font-size:21px;
font-weight:bold;
font-family:"Myriad Pro", Arial, Helvetica, sans-serif;
padding:20px 0;
}
table td p {
margin:0;
padding:0 0 20px 0;
}
</style>
</head>
<body>
<div id="wrapper">
<table cellpadding="0">
<tr>
<th>
<h1>Esta semana hablamos de....</h1>
</th>
</tr>
<tr>
<td>
<h2>Nuestra Cultura</h2>
</td>
</tr>
<tr>
<td>
<p>
Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, quedando esencialmente igual al original. Fue popularizado en los 60s con la creación de las hojas "Letraset", las cuales contenian pasajes de Lorem Ipsum, y más recientemente con software de autoedición, como por ejemplo Aldus PageMaker, el cual incluye versiones de Lorem Ipsum.
</p>
<p>
Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, quedando esencialmente igual al original.
</p>
</td>
</tr>
</table>
</div>
</body>
</html>