Align each text correctly with It's respective image - html

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.

Related

How to center vertically the text within a multiple div

I've been trying hard for the past hours to switch from the left column to the right one. I mean, I'm trying to center vertically the text div inside the grey div.
I would love to get some of your help. I've read a lot of tutorials and forum answer but didn't get the expected result yet.
Any advice is more than welcome :)
HTML Code :
.box-key-message{
height: 240px;
position: relative;
background-color: #eeeeee;
border-radius: 10px;
}
.box-key-message div {
display:inline-block;
vertical-align:middle;
padding: 20px;
text-align: justify;
}
.box-key-message span {
font-weight:bold;
font-size:16px;
color: #D5420F;
}
<div class="col-lg-4 col-lg-offset-1">
<div class="box-key-message">
<div>
<span> Gratuit</span>
<br /><br />
Notre service, qui vous permet d’accéder à des centaines d’étudiants, est complètement gratuit pour vous.
<br /><br />
Vous ne rémunérez que l’étudiant. Un acompte de 15% vous sera demandé au moment de la mise en relation. Le reste sera payé une fois tous les succès de votre mission atteints !
</div>
</div>
<br /><br />
<div class="box-key-message">
<div>
<span>Simple et Rapide</span>
<br /><br />
Remplissez cette page en 5 minutes pour publier une mission à tous nos étudiants.
<br /><br />
Vous recevrez alors le CV des étudiants intéressés par votre mission. Une fois l’étudiant sélectionné, la mission commence.
</div>
</div>
<br /><br />
<div class="box-key-message">
<div>
<span>Sans engagement</span>
<br /><br />
Les étudiants des Grandes Ecoles qui vous répondent sont qualifiés, motivés, disponibles et réactifs.
<br /><br />
Si malgré tout aucun profil ne vous correspond, vous n’avez aucune obligation de recruter un étudiant et poster la mission aura été gratuit.
</div>
</div>
<br /><br />
<div class="box-key-message">
<div>
<span>Et pour payer l’étudiant ?</span>
<br /><br />
L’étudiant vous facturera la prestation en direct à la fin de la mission.
</div>
</div>
</div>
You could use the inner div as a table-cell, then vertical-align works on it.
I also improved your HTML, instead of using two line breaks, it's better to use paragraphs or margin.
<div class="col-lg-4 col-lg-offset-1">
<div class="box-key-message">
<div>
<span> Gratuit</span>
<p>Notre service, qui vous permet d’accéder à des centaines d’étudiants, est complètement gratuit pour vous.</p>
<p>Vous ne rémunérez que l’étudiant. Un acompte de 15% vous sera demandé au moment de la mise en relation. Le reste sera payé une fois tous les succès de votre mission atteints !</p>
</div>
</div>
<div class="box-key-message">
<div>
<span>Simple et Rapide</span>
<p>Remplissez cette page en 5 minutes pour publier une mission à tous nos étudiants.</p>
<p>Vous recevrez alors le CV des étudiants intéressés par votre mission. Une fois l’étudiant sélectionné, la mission commence.</p>
</div>
</div>
<div class="box-key-message">
<div>
<span>Sans engagement</span>
<p>Les étudiants des Grandes Ecoles qui vous répondent sont qualifiés, motivés, disponibles et réactifs.</p>
<p>Si malgré tout aucun profil ne vous correspond, vous n’avez aucune obligation de recruter un étudiant et poster la mission aura été gratuit.</p>
</div>
</div>
<div class="box-key-message">
<div>
<span>Et pour payer l’étudiant ?</span>
<p>L’étudiant vous facturera la prestation en direct à la fin de la mission.</p>
</div>
</div>
</div>
.box-key-message {
height: 240px;
background-color: #eeeeee;
border-radius: 10px;
margin-bottom: 2em;
display: table;
}
.box-key-message div {
display: table-cell;
vertical-align:middle;
padding: 20px;
text-align: justify;
}
.box-key-message span {
font-weight:bold;
font-size:16px;
color: #D5420F;
}
DEMO
Just use display: table; table-layout: fixed; for the parent div and display: table-cell; vertical-align: middle; for every child. See how it works below. You probably also will need to specify width: 100% to both of them.
.box-key-message{
height: 240px;
position: relative;
background-color: #eeeeee;
border-radius: 10px;
display: table;
table-layout: fixed;
}
.box-key-message div {
display:inline-block;
vertical-align:middle;
padding: 20px;
text-align: justify;
display: table-cell;
vertical-align: middle;
width: 100%;
}
.box-key-message span {
font-weight:bold;
font-size:16px;
color: #D5420F;
}
<div class="col-lg-4 col-lg-offset-1">
<div class="box-key-message">
<div>
<span> Gratuit</span>
<br /><br />
Notre service, qui vous permet d’accéder à des centaines d’étudiants, est complètement gratuit pour vous.
<br /><br />
Vous ne rémunérez que l’étudiant. Un acompte de 15% vous sera demandé au moment de la mise en relation. Le reste sera payé une fois tous les succès de votre mission atteints !
</div>
</div>
<br /><br />
<div class="box-key-message">
<div>
<span>Simple et Rapide</span>
<br /><br />
Remplissez cette page en 5 minutes pour publier une mission à tous nos étudiants.
<br /><br />
Vous recevrez alors le CV des étudiants intéressés par votre mission. Une fois l’étudiant sélectionné, la mission commence.
</div>
</div>
<br /><br />
<div class="box-key-message">
<div>
<span>Sans engagement</span>
<br /><br />
Les étudiants des Grandes Ecoles qui vous répondent sont qualifiés, motivés, disponibles et réactifs.
<br /><br />
Si malgré tout aucun profil ne vous correspond, vous n’avez aucune obligation de recruter un étudiant et poster la mission aura été gratuit.
</div>
</div>
<br /><br />
<div class="box-key-message">
<div>
<span>Et pour payer l’étudiant ?</span>
<br /><br />
L’étudiant vous facturera la prestation en direct à la fin de la mission.
</div>
</div>
</div>
You can use display: table; width:100%; on .box-key-message, and display: table-cell on the div within it in. You want to use the table css hack because tables support vertical-align: middle while regular divs do not.
HTML:
<div class="row">
<div class="col-lg-4 col-lg-offset-1">
<div class="box-key-message">
<div>
<p><strong> Gratuit</strong></p>
<p>Notre service, qui vous permet d’accéder à des centaines d’étudiants, est complètement gratuit pour vous.</p>
<p>Vous ne rémunérez que l’étudiant. Un acompte de 15% vous sera demandé au moment de la mise en relation. Le reste sera payé une fois tous les succès de votre mission atteints !</p>
</div>
</div>
<div class="box-key-message">
<div>
<p><strong>Simple et Rapide</strong></p>
<p>Remplissez cette page en 5 minutes pour publier une mission à tous nos étudiants.</p>
<p>Vous recevrez alors le CV des étudiants intéressés par votre mission. Une fois l’étudiant sélectionné, la mission commence.</p>
</div>
</div>
<div class="box-key-message">
<div>
<p><strong>Sans engagement</strong></p>
<p>Les étudiants des Grandes Ecoles qui vous répondent sont qualifiés, motivés, disponibles et réactifs.</p>
<p>Si malgré tout aucun profil ne vous correspond, vous n’avez aucune obligation de recruter un étudiant et poster la mission aura été gratuit.</p>
</div>
</div>
<div class="box-key-message">
<div>
<p><strong>Et pour payer l’étudiant ?</strong></p>
<p>L’étudiant vous facturera la prestation en direct à la fin de la mission.</p>
</div>
</div>
</div>
</div>
CSS:
.box-key-message{
height: 240px;
display:table;
background-color: #eeeeee;
border-radius: 10px;
margin-bottom: 20px;
width: 100%;
}
.box-key-message div {
display:table-cell;
vertical-align: middle;
padding: 20px;
text-align: justify;
}
.box-key-message strong {
font-size:16px;
color: #D5420F;
}
As a sidenote, you overused break tags a little too much. You can get the spacing you want for the content inside the .box-key-message divs by using paragraph tags around your content. To separate out the box-key-message blocks so they won't touch each other, you can add a margin-bottom: 20px; (or whatever spacing you prefer) to .box-key-message in your css.
See this codepen for an example.

How can I put a "+" below each table?

I have this site:
http://dl.dg-site.com/produits-game/
Under each table I want to put a "+" as in this example
http://www.delumine.ch/produits-et-gamme.html
This is my code:
http://jsfiddle.net/xcn8fg94/
CODE HTML:
<div id="tabel_1">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
</div>
<div id="tabel_2">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
</div>
<div id="tabel_3">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
</div>
<div id="tabel_4">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
</div>
Code CSS:
#tabel_1,#tabel_2,#tabel_3,#tabel_4{width:210px;height:540px;
display:inline-block;
background: #FFFFFF;
vertical-align:top;
border: 2px solid #264572;
margin-left: 10px;}
I tried to add <p>+<p> under each table but not working.
Can you help me to solve this problem please?
Thanks in advance!
Make a margin below the divs (margin-bottom)
Make the div positioned absolute, so that the p containing the + can be positioned absolute
Create the p , with class bottom
Give them the correct dimension and position
#tabel_1,#tabel_2,#tabel_3,#tabel_4{width:210px;height:540px;
display:inline-block;
background: #FFFFFF;
vertical-align:top;
border: 2px solid #264572;
margin-left: 10px;
margin-bottom: 50px;
position: relative;
}
.bottom {
position: absolute;
top: 100%;
left: 0px;
right: 0px;
width: 1em;
margin: auto;
font-size: 40px;
font-weight: bolder;
}
<div id="tabel_1">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
<p class="bottom">+</p>
</div>
<div id="tabel_2">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
<p class="bottom">+</p>
</div>
<div id="tabel_3">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
<p class="bottom">+</p>
</div>
<div id="tabel_4">
<p id="title_first">Qualité</p>
<p id="content_first">Le souci de qualité de nos installations, de standards européens, est au coeur de notre activité. C’est pourquoi nous choisissons des partenaires de qualité et de savoir-faire, tels que Philips, Bosch, Zanussi.</p>
<div id="image_first"></div>
<p class="bottom">+</p>
</div>
you probably wouldnt use the + as in what is on your keyboard. check out icon websites like http://fortawesome.github.io/Font-Awesome/. through font-awesome they have different sizes and they are very easy to use.
for the full icon list go here: http://fortawesome.github.io/Font-Awesome/icons/
I'd use a :after selector for that and set an icon as the background. Currently not on my pc, so no example sorry.

css float issue (nav and article)

I have a nav bar and an article in my html page. I want the nav bar to be floating on the left side of the page and the article on the right side: but I don't want the article to wrap around the nav.
<nav>
<ul>
<li id="startButton" class="ui-selected"><div>Inicio</div></li>
<li id="servicesButton"><div>Servicios</div></li>
<li id="offersButton"><div>Ofertas</div></li>
<li id="contactButton"><div>Contacto</div></li>
</ul>
</nav>
<article id="start">
<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca.</p>
<p>Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.</p>
<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.</p>
<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden,</p>
</article>
My code is in this fiddle: http://jsfiddle.net/qu6jqcrk/
I have tried floating the article but it gets pushed down the nav bar. Can anyone help me figuring it out?
Regards
There are some solutions. One is to use display: table-cell to article:
nav {
float: left;
}
nav ul {
list-style-type: none;
position: relative;
left: -20px;
display: inline-block;
text-align: center;
}
nav ul li {
border: 2px solid #051838;
margin: 10px;
padding: 1em;
font-size: 1em;
height: 16px;
font-family: Lucida Console;
cursor: pointer;
}
article {
padding: 10px 20px 10px 10px;
margin: 10px;
display: table-cell;
}
article p {
text-align: justify;
}
<nav>
<ul>
<li id="startButton" class="ui-selected">
<div>Inicio</div>
</li>
<li id="servicesButton">
<div>Servicios</div>
</li>
<li id="offersButton">
<div>Ofertas</div>
</li>
<li id="contactButton">
<div>Contacto</div>
</li>
</ul>
</nav>
<article id="start">
<p>Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han
de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca.</p>
<p>Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más
que otro.</p>
<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está
ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro
si no hace más que otro.</p>
<p>Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está
ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro
si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado
mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden,</p>
</article>
use white-space:nowrap;
article {
padding: 10px 20px 10px 10px;
margin: 10px;
display: block;
white-space:nowrap;
}
try this
http://jsfiddle.net/qu6jqcrk/5/
you can wrap with a div:
<div class="Left">
<nav>
...
</nav>
</div>
<div class="Right">
<article id="start">
...
</article>
</div>
.Right {
float: right;
width: 70%;
}
.Left {
float: left;
width: 30%;
}
jsfiddle
Just give the article a width, float it to the right, and also use nowrap
article {
padding: 10px 20px 10px 10px;
margin: 10px;
display: block;
width: 60%; /* You need to define a width */
float: right
white-space:nowrap;
}
See working example here.
Note: Width is very important so that the article width doesn't grow excessively.
Use display: table-cell for article
article {
padding: 10px 20px 10px 10px;
margin: 10px;
display: table-cell;
}
http://jsfiddle.net/alemarch/qu6jqcrk/10/

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>