Use 1 markup to create 2 layouts based on breakpoint - html

The snippet shows 2 examples. First is the layout for small breakpoints, where it has 4 elements in one column. The second one is the layout for big breakpoints, where it has 2 elements in one column and 2 elements in another column. And the element that has moved over from the second column is one from the middle ("second paragraph", not the first or third paragraph).
I can do it like the snippet with 2 different markups for the different breakpoints, but duplicating markup is not good. How can I do it using 1 markup and have it adjust to both layouts at the different breakpoints? I tried using grid layout but it didn't work because the top left image in the large breakpoint had extra space on the bottom because of the paragraph on the top right (they are taking up the same height because they are in the same grid row).
h2 {
margin: 0;
}
.container1 {
width: 100%
}
.container1 .column1 img {
width: 100%
}
.container2 {
display: flex;
flex-direction: col;
flex-wrap: wrap;
}
.container2 .column1 {
width: 50%;
}
.container2 .column1 img {
width: 100%
}
.container2 .column2 {
width: 50%;
}
<h1>first example</h1>
<div class="container1">
<div class="column1">
<img src="https://picsum.photos/250/100">
</div>
<div class="column2">
<h2>first paragraph</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nibh nisl condimentum id venenatis a condimentum. Id porta nibh venenatis cras sed felis eget velit. Lacus sed turpis tincidunt
id aliquet risus feugiat in ante. Pretium vulputate sapien nec sagittis aliquam. Tortor vitae purus faucibus ornare. Sed turpis tincidunt id aliquet risus. Adipiscing vitae proin sagittis nisl rhoncus mattis. Eu turpis egestas pretium aenean. Viverra
justo nec ultrices dui. Mattis rhoncus urna neque viverra justo. Facilisi cras fermentum odio eu feugiat pretium nibh. In mollis nunc sed id semper. Eget mi proin sed libero enim sed faucibus turpis. Fringilla ut morbi tincidunt augue interdum velit
euismod in. Pharetra diam sit amet nisl suscipit adipiscing bibendum. Sed elementum tempus egestas sed sed risus.
</div>
</div>
<div>
<h2>second paragraph</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nibh nisl condimentum id venenatis a condimentum. Id porta nibh venenatis cras sed felis eget velit. Lacus sed turpis tincidunt
id aliquet risus feugiat in ante. Pretium vulputate sapien nec sagittis aliquam. Tortor vitae purus faucibus ornare. Sed turpis tincidunt id aliquet risus. Adipiscing vitae proin sagittis nisl rhoncus mattis. Eu turpis egestas pretium aenean. Viverra
justo nec ultrices dui. Mattis rhoncus urna neque viverra justo. Facilisi cras fermentum odio eu feugiat pretium nibh. In mollis nunc sed id semper. Eget mi proin sed libero enim sed faucibus turpis. Fringilla ut morbi tincidunt augue interdum velit
euismod in. Pharetra diam sit amet nisl suscipit adipiscing bibendum. Sed elementum tempus egestas sed sed risus.
</div>
</div>
<div>
<h2>third paragraph</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nibh nisl condimentum id venenatis a condimentum. Id porta nibh venenatis cras sed felis eget velit. Lacus sed turpis tincidunt
id aliquet risus feugiat in ante. Pretium vulputate sapien nec sagittis aliquam. Tortor vitae purus faucibus ornare. Sed turpis tincidunt id aliquet risus. Adipiscing vitae proin sagittis nisl rhoncus mattis. Eu turpis egestas pretium aenean. Viverra
justo nec ultrices dui. Mattis rhoncus urna neque viverra justo. Facilisi cras fermentum odio eu feugiat pretium nibh. In mollis nunc sed id semper. Eget mi proin sed libero enim sed faucibus turpis. Fringilla ut morbi tincidunt augue interdum velit
euismod in. Pharetra diam sit amet nisl suscipit adipiscing bibendum. Sed elementum tempus egestas sed sed risus.
</div>
</div>
</div>
<h1>second example</h1>
<div class="container2">
<div class="column1">
<img src="https://picsum.photos/250/100">
<div>
<h2>second paragraph</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nibh nisl condimentum id venenatis a condimentum. Id porta nibh venenatis cras sed felis eget velit. Lacus sed turpis tincidunt
id aliquet risus feugiat in ante. Pretium vulputate sapien nec sagittis aliquam. Tortor vitae purus faucibus ornare. Sed turpis tincidunt id aliquet risus. Adipiscing vitae proin sagittis nisl rhoncus mattis. Eu turpis egestas pretium aenean.
Viverra justo nec ultrices dui. Mattis rhoncus urna neque viverra justo. Facilisi cras fermentum odio eu feugiat pretium nibh. In mollis nunc sed id semper. Eget mi proin sed libero enim sed faucibus turpis. Fringilla ut morbi tincidunt augue
interdum velit euismod in. Pharetra diam sit amet nisl suscipit adipiscing bibendum. Sed elementum tempus egestas sed sed risus.
</div>
</div>
</div>
<div class="column2">
<div>
<h2>first paragraph</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nibh nisl condimentum id venenatis a condimentum. Id porta nibh venenatis cras sed felis eget velit. Lacus sed turpis tincidunt
id aliquet risus feugiat in ante. Pretium vulputate sapien nec sagittis aliquam. Tortor vitae purus faucibus ornare. Sed turpis tincidunt id aliquet risus. Adipiscing vitae proin sagittis nisl rhoncus mattis. Eu turpis egestas pretium aenean.
Viverra justo nec ultrices dui. Mattis rhoncus urna neque viverra justo. Facilisi cras fermentum odio eu feugiat pretium nibh. In mollis nunc sed id semper. Eget mi proin sed libero enim sed faucibus turpis. Fringilla ut morbi tincidunt augue
interdum velit euismod in. Pharetra diam sit amet nisl suscipit adipiscing bibendum. Sed elementum tempus egestas sed sed risus.
</div>
</div>
<div>
<h2>third paragraph</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nibh nisl condimentum id venenatis a condimentum. Id porta nibh venenatis cras sed felis eget velit. Lacus sed turpis tincidunt
id aliquet risus feugiat in ante. Pretium vulputate sapien nec sagittis aliquam. Tortor vitae purus faucibus ornare. Sed turpis tincidunt id aliquet risus. Adipiscing vitae proin sagittis nisl rhoncus mattis. Eu turpis egestas pretium aenean.
Viverra justo nec ultrices dui. Mattis rhoncus urna neque viverra justo. Facilisi cras fermentum odio eu feugiat pretium nibh. In mollis nunc sed id semper. Eget mi proin sed libero enim sed faucibus turpis. Fringilla ut morbi tincidunt augue
interdum velit euismod in. Pharetra diam sit amet nisl suscipit adipiscing bibendum. Sed elementum tempus egestas sed sed risus.
</div>
</div>
</div>

For the desktop version of it you could use grid-row to expend your rows and keep a clear markup
body {
margin: 0;
}
.img__content {
grid-row: 1 / 4;
position: relative;
height: 100%;
}
.img__content img {
position: absolute;
max-width: 100%;
height: 100%;
width: unset;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: auto;
}
.bloc:nth-child(4) {
grid-row: 3 / span 2;
}
.bloc {
grid-row: span 2;
}
<div class="grid">
<div class="img__content">
<img src="https://images.unsplash.com/photo-1619445189993-b96d083fc862?crop=entropy&cs=srgb&fm=jpg&ixid=MnwxNDU4OXwwfDF8cmFuZG9tfHx8fHx8fHx8MTYyMTI0MDIyMw&ixlib=rb-1.2.1&q=85" alt="">
</div>
<div class="bloc">
<h1>Paragraph 1</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut laudantium incidunt expedita maxime beatae earum, quaerat suscipit quos corrupti dolore rerum corporis? Illum quo, tenetur ea doloribus reprehenderit voluptas labore?</p>
</div>
<div class="bloc">
<h1>Paragraph 2</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut laudantium incidunt expedita maxime beatae earum, quaerat suscipit quos corrupti dolore rerum corporis? Illum quo, tenetur ea doloribus reprehenderit voluptas labore?</p>
</div>
<div class="bloc">
<h1>Paragraph 3</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut laudantium incidunt expedita maxime beatae earum, quaerat suscipit quos corrupti dolore rerum corporis? Illum quo, tenetur ea doloribus reprehenderit voluptas labore?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut laudantium incidunt expedita maxime beatae earum, quaerat suscipit quos corrupti dolore rerum corporis? Illum quo, tenetur ea doloribus reprehenderit voluptas labore?</p>
</div>
<div class="bloc">
<h1>Paragraph 4</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut laudantium incidunt expedita maxime beatae earum, quaerat suscipit quos corrupti dolore rerum corporis? Illum quo, tenetur ea doloribus reprehenderit voluptas labore?</p>
</div>
</div>

Related

Wrap 2 column layout around image

I'm trying to create a 2 column layout around an image but no success
This is what I want the layout to be:
This is what I can do so far:
<!DOCTYPE html>
<html>
<head>
<title>
Wrapping an Image with the text
</title>
<style>
img {
float: right;
margin: 5px;
}
p {
font-size: 20px;
}
</style>
</head>
<body>
<h1>Testing</h1>
<div class="square">
<div>
<img style="width: 300px" src="https://picture-origin.rumah123.com/news-content/img/2020/11/01111044/mansion-mewah-5.jpg" alt="">
</div>
<!-- <div style="column-count: 2"> -->
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim. Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus. Donec auctor justo eu lobortis finibus.
Proin ultrices bibendum odio, eu sodales metus ultricies a. Nullam a ex neque. Quisque vel justo sed quam rhoncus eleifend a eget lorem. Duis accumsan nibh ullamcorper dolor porttitor suscipit. Sed in orci augue. Proin hendrerit magna sit amet felis efficitur, in consectetur leo luctus. Nulla imperdiet arcu quis neque maximus, vel molestie est rutrum.
</p>
<!--</div>-->
</div>
</body>
</html>
if I activated the div with column style 2, the layout will be a mess like this:
What is the solution for this? It's been days and I haven't found any solution yet. Please help.
UPDATE
Sorry, forgot to mention that the sentences must be continuous, so when a sentence is not completed in left column, it will be continued to right column under the image.
Make the text into two paragraphs, place the image in the second one, and float it to the top.
<!DOCTYPE html>
<html>
<head>
<title>
Wrapping an Image with the text
</title>
<style>
img {
float: right top;
margin: 5px;
}
p {
font-size: 20px;
}
</style>
</head>
<body>
<h1>Testing</h1>
<div class="square">
<div style="column-count: 2">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim. Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus. Donec auctor justo eu lobortis finibus.</p>
<p> <img style="width: 300px" src="https://picture-origin.rumah123.com/news-content/img/2020/11/01111044/mansion-mewah-5.jpg" alt="">
Proin ultrices bibendum odio, eu sodales metus ultricies a. Nullam a ex neque. Quisque vel justo sed quam rhoncus eleifend a eget lorem. Duis accumsan nibh ullamcorper dolor porttitor suscipit. Sed in orci augue. Proin hendrerit magna sit amet felis efficitur, in consectetur leo luctus. Nulla imperdiet arcu quis neque maximus, vel molestie est rutrum.
</p>
</div>
</div>
</body>
</html>
Try wraping it using table like this
img {
float: right;
margin: 5px;
}
p {
font-size: 20px;
}
<table>
<tr>
<td width="70%">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta
tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus
dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim.
Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet
pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus.
Donec auctor justo eu lobortis finibus.
Proin ultrices bibendum odio, eu sodales metus ultricies a. Nullam a ex neque. Quisque vel justo sed
quam rhoncus eleifend a eget lorem. Duis accumsan nibh ullamcorper dolor porttitor suscipit. Sed in
orci augue. Proin hendrerit magna sit amet felis efficitur, in consectetur leo luctus. Nulla
imperdiet arcu quis neque maximus, vel molestie est rutrum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta
tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus
dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim.
Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet
pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus.
Donec auctor justo eu lobortis finibus.
Proin ultrices bibendum odio, eu sodales metus ultricies a. Nullam a ex neque. Quisque vel justo sed
quam rhoncus eleifend a eget lorem. Duis accumsan nibh ullamcorper dolor porttitor suscipit. Sed in
orci augue. Proin hendrerit magna sit amet felis efficitur, in consectetur leo luctus. Nulla
imperdiet arcu quis neque maximus, vel molestie est rutrum.
</p>
</td>
<td width="40%">
<img style width="100%"
src="https://picture-origin.rumah123.com/news-content/img/2020/11/01111044/mansion-mewah-5.jpg"
alt="">
</td>
</tr>
<tr>
<td width="60%">
</td>
<td width="20%">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias amet adipisci, possimus illo animi
maiores vitae corrupti. Similique suscipit, unde cupiditate sequi, sed rerum non officiis nisi nesciunt
quo vero ab reprehenderit quae ad aut saepe voluptate? Aliquam sint similique quibusdam iure
perspiciatis at quidem facere autem, iste velit in omnis! Atque repudiandae cupiditate ab nemo suscipit
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta
tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus
dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim.
Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet
pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus.
Donec auctor justo eu lobortis finibus.
Proin ultrices bibendum odio, eu sodales metus ultricies a. Nullam a ex neque. Quisque vel justo sed
quam rhoncus eleifend a eget lorem. Duis accumsan nibh ullamcorper dolor porttitor suscipit. Sed in
orci augue. Proin hendrerit magna sit amet felis efficitur, in consectetur leo luctus. Nulla
imperdiet arcu quis neque maximus, vel molestie est rutrum.
</td>
</tr>
</table>
div {
margin: 2px;
}
#app {
display: flex;
}
.vd-grid-left-col {
display: flex;
flex-wrap: wrap;
flex-basis: 70%;
justify-content: space-between;
}
.main {
width: 100%;
background-color: blue;
}
.vd-grid-right-col {
display: flex;
flex-direction: column;
flex-basis: 30%;
}
.feature {
width: 100%;
background-color: grey;
}
img {
width: 100%;
margin: 5px;
}
p {
font-size: 20px;
}
<!DOCTYPE html>
<html>
<head>
<title>
Wrapping an Image with the text
</title>
</head>
<body>
<h1>Testing</h1>
<div id="app">
<div class="vd-grid-left-col">
<div class="main">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta
tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus
dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim.
Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet
pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus.
Donec auctor justo eu lobortis finibus. Proin ultrices bibendum odio, eu sodales metus ultricies a.
Nullam a ex neque. Quisque vel justo sed quam rhoncus eleifend a eget lorem. Duis accumsan nibh
ullamcorper dolor porttitor suscipit. Sed in orci augue. Proin hendrerit magna sit amet felis
efficitur,
in consectetur leo luctus. Nulla imperdiet arcu quis neque maximus, vel molestie est rutrum.</p>
</div>
</div>
<div class="vd-grid-right-col">
<div class="feature">
<img src="https://thumbs.dreamstime.com/b/environment-earth-day-hands-trees-growing-seedlings-bokeh-green-background-female-hand-holding-tree-nature-field-gra-130247647.jpg"
alt="nature" width="500" height="300">
</div>
<div class="feature">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor porttitor ligula, eu porta
tellus tincidunt vehicula. Nam faucibus facilisis sapien, ac vehicula nulla congue vitae. Phasellus
dictum dui a sollicitudin viverra. Morbi nisi turpis, interdum ut tortor in, blandit hendrerit enim.
Aenean nisl mi, scelerisque in finibus eget, suscipit sed augue. Ut ac odio non odio laoreet
pellentesque vitae sit amet diam. Vivamus eros urna, condimentum et nisi et, pulvinar aliquam risus.
</p>
</div>
</div>
</div>
</body>
Weil, I finally managed to solve it. Here's my solution:
<!DOCTYPE html>
<html>
<head>
<title>
Wrapping an Image with the text
</title>
<style>
div {
column-count: 2;
position: relative;
padding-top: 33%;
font-size: 20px;
column-gap: 5%;
}
div img {
position: absolute;
top: 0;
right: 0;
width: 47.5%;
}
.first-el {
margin-top: -70%;
}
</style>
</head>
<body>
<h1>Testing</h1>
<div>
<img src="https://picture-origin.rumah123.com/news-content/img/2020/11/01111044/mansion-mewah-5.jpg">
<p class="first-el">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit?orem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit?</p>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit?</p>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit? Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit? Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit?</p>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit?</p>
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Porro id sequi rem aspernatur dolore expedita quia. Atque amet enim aliquid rem eligendi quibusdam rerum, consequuntur tenetur eum, error vero impedit?</p>
</div>
</body>
</html>
The image is positioned absolute on top right. It will be placed over the text so I used padding-top in the container and negative margin top in first element of the container which is first-el class to make a space for the image. Both padding-top and margin-top are in percentage to make the room responsive to image's height.
I hope this can help someone who have similar issue.

Styling a "spilled" content

Just wanted to check if this kind of design is possible in CSS, basically the contents of the child element spills over the bounds of its parent:
I have tried using negative margins and position properties but it is not a one-size-fits-all solution. When the content of the child class increases, the size of the parent increases as well.
Here's the style:
.spilling-content {
position: relative;
margin-top: -10rem;
top: 10rem;
}
I also tried setting the height of the child to a fixed value, and that solved the parent's sizing issue but expectedly the problem is the content below this section is not being pushed down.
Any other tricks I could try?
Float can help here:
.parent {
border: 2px solid;
padding: 20px 20px 40px;
}
.child {
float: left;
margin-top:10px;
border: 2px solid red;
}
.parent + * {
clear:both;
}
<div class="parent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna
<div class="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna rhoncus, gravida tellus eget, scelerisque quam. Quisque quis magna velit. Fusce aliquet condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum </div>
</div>
<div class="parent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna
<div class="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna rhoncus, gravida tellus eget, scelerisque quam. Quisque quis magna velit. Fusce aliquet condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna rhoncus, gravida tellus eget, scelerisque quam. Quisque quis magna velit. Fusce aliquet condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum</div>
</div>
<div class="parent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna
<div class="child">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna rhoncus, gravida tellus eget, scelerisque quam. Quisque quis magna velit. Fusce aliquet condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum consectetur adipiscing elit. Suspendisse faucibus rhoncus leo, et vehicula nulla tempor ullamcorper. Sed id magna rhoncus, gravida tellus eget, scelerisque quam. Quisque quis magna velit. Fusce aliquet condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum ullamcorper. Sed id magna rhoncus, gravida tellus eget, scelerisque quam. Quisque quis magna velit. Fusce aliquet condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum condimentum neque ac
mollis. Sed suscipit elementum bibendum. Vestibulum</div>
</div>

Dont Indent First Line of First Paragraph using CSS

How would I prevent the line indent for the first paragraph in a section?
This is very common for many academic formats.
Sample Output
Introduction
For the first paragraph in the section, there is no indent: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. In eu mi bibendum neque egestas congue. A arcu cursus vitae congue mauris rhoncus aenean vel elit.
For all following paragraphs, there is an indent set by text-indent: Sed velit dignissim sodales ut. Nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Tristique et egestas quis ipsum suspendisse ultrices gravida dictum. Augue mauris augue neque gravida in fermentum et sollicitudin ac.
For all following paragraphs, there is an indent set by text-indent: Nunc sed id semper risus in hendrerit. Etiam non quam lacus suspendisse faucibus interdum posuere lorem. Ut porttitor leo a diam sollicitudin tempor id. Facilisis mauris sit amet massa vitae tortor condimentum lacinia quis. Sagittis vitae et leo duis ut.
Right now, I have the following code in my CSS
p {
text-indent: 50px;
}
You may want to use the css pseudo-class 'first-of-type'
p:first-of-type {
text-indent: 0;
}
As the css selector implies the styling will only apply to the first p element.
You can use CSS Adjacent sibling combinator like this:
p + p {
text-indent: 50px;
}
Run the code to see the result
p + p {
text-indent: 50px;
}
<h1>Introduction</h1>
<p>For the first paragraph in the section, there is no indent: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. In eu mi bibendum neque egestas congue. A arcu cursus vitae congue mauris rhoncus aenean vel elit.</p>
<p>For all following paragraphs, there is an indent set by text-indent: Sed velit dignissim sodales ut. Nunc pulvinar sapien et ligula ullamcorper malesuada proin libero. Tristique et egestas quis ipsum suspendisse ultrices gravida dictum. Augue mauris augue neque gravida in fermentum et sollicitudin ac.</p>
<p>For all following paragraphs, there is an indent set by text-indent: Nunc sed id semper risus in hendrerit. Etiam non quam lacus suspendisse faucibus interdum posuere lorem. Ut porttitor leo a diam sollicitudin tempor id. Facilisis mauris sit amet massa vitae tortor condimentum lacinia quis. Sagittis vitae et leo duis ut.</p>
You are correct, don't indent the first line of the first paragraph. To attract the eye, use an initial cap (increases readership around 15%).
However, in best-practices typography, you should only use one or the other: 1) a space between paragraphs (not a whole space, mind you) and no indent
OR 2) no space between paragraphs and but indent the first line.
* {
margin: 0;
padding: 0;
}
h3 {
font-family: Georgia;
font-size: 1.5rem;
line-height: 1.3rem;
font-weight: normal;
margin: 2.0rem 0;
}
p {
font-family: Georgia;
font-size: 1.0rem;
line-height: 1.3rem;
}
.space-noindent p {
margin-bottom: 0.8rem;
}
.nospace-indent p:nth-child(1n+2) {
text-indent: 1.5rem;
}
.space-noindent p:nth-of-type(1):first-letter{
font-size: 2.5rem;
}
<div class="space-noindent">
<h3>Space, no indent:</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent tincidunt imperdiet justo, ac rhoncus urna sollicitudin vitae. Duis eu dolor eu dui tempor cursus. Phasellus sit amet velit sit amet metus accumsan rhoncus. Maecenas et est odio, id tincidunt ligula. Donec sapien diam, vestibulum ac cursus eget, dignissim vel diam. Praesent interdum vestibulum erat nec volutpat.</p>
<p>Suspendisse interdum congue sagittis. Suspendisse tortor ligula, facilisis nec molestie vel, laoreet sed diam. Integer libero orci, iaculis dapibus adipiscing sed, varius ut dui. Nullam posuere commodo quam eget ultricies. Duis luctus, mauris at iaculis tempor, ipsum elit auctor neque.</p>
<p>Duis eu dolor eu dui tempor cursus. Phasellus sit amet velit sit amet metus accumsan rhoncus. Maecenas et est odio, id tincidunt ligula. Donec iaculis dapibus adipiscing sed sapien diam, vestibulum ac cursus ege.</p>
</div>
<h3>No space, indent:</h3>
<div class="nospace-indent">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent tincidunt imperdiet justo, ac rhoncus urna sollicitudin vitae. Duis eu dolor eu dui tempor cursus. Phasellus sit amet velit sit amet metus accumsan rhoncus. Maecenas et est odio, id tincidunt ligula. Donec sapien diam, vestibulum ac cursus eget, dignissim vel diam. Praesent interdum vestibulum erat nec volutpat.</p>
<p>Suspendisse interdum congue sagittis. Suspendisse tortor ligula, facilisis nec molestie vel, laoreet sed diam. Integer libero orci, iaculis dapibus adipiscing sed, varius ut dui. Nullam posuere commodo quam eget ultricies. Duis luctus, mauris at iaculis tempor, ipsum elit auctor neque.</p>
<p>Duis eu dolor eu dui tempor cursus. Phasellus sit amet velit sit amet metus accumsan rhoncus. Maecenas et est odio, id tincidunt ligula. Donec iaculis dapibus adipiscing sed sapien diam, vestibulum ac cursus ege.</p>
</div>

Date in Upper Righthand Corner Causes Header to Decenter [duplicate]

This question already has answers here:
Date in Upper Righthand Corner Causes Header to De-center
(5 answers)
Closed 5 years ago.
The date in the righthand corner of each post is causing the H2 Element to not be centered.
It's a very simple issue, with an annoying result. I've tried many things, and I still can't seem to stop it from de-centering! I know there's a fix, but I still cannot seem to fix it.
Here's an image describing the issue:
Here's the code:
body {
font-family: 'Roboto', Arial, Helvetica, sans-serif;
background-color: #FFFFFF;
color: #000000;
text-align: center;
}
.container {
width: 80%;
display: inline-block;
}
.post {
border: 2px solid #000000;
padding: 0px 4px 0px 4px;
}
.post p,h2 {
margin: 0;
}
.post h2 {
text-align: center;
}
.post p {
text-align: left;
text-indent: 40px;
line-height: 1.8;
}
hr {visibility: hidden;}
.date {
float: right;
font-size: 12pt;
font-style: italic;
font-weight: normal;
}
#media screen and (max-width: 600px){
.container {width: 100%;}
.post p {text-align: justify;text-indent: 0px;font-size: 14pt;}
}
<body>
<h1>Welcome to Henry's Blog!</h1>
<div class="container">
<div class="post" id="10">
<span class="date">10/15/17</span>
<h2>Tenth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="9">
<span class="date">10/15/17</span>
<h2>Ninth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="8">
<span class="date">10/15/17</span>
<h2>Eighth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="7">
<span class="date">10/15/17</span>
<h2>Seventh Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="6">
<span class="date">10/15/17</span>
<h2>Sixth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="5">
<span class="date">10/15/17</span>
<h2>Fifth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="4">
<span class="date">10/15/17</span>
<h2>Fourth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="3">
<span class="date">10/15/17</span>
<h2>Third Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="2">
<span class="date">10/15/17</span>
<h2>Second Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="1">
<h2>First Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<p>Blog Posts: 1 2 3 4 5 6 7 8 9 10</p>
</div>
</body>
</html>
Instead of using float - which will affect the positioning of the surrounding element - you can use absolute positioning, which won't affect the positioning of the other elements at all.
You just need 2 changes:
1: Make the parent relative, so that the date is positioned in relation to it and not the main page:
.post {
position: relative;
/* rest of styles... */
}
2: Change the position to absolute, and set top & right to give a little "padding" around the date:
.date {
position: absolute;
top: 5px;
right: 5px;
/* rest of styles... */
}
Working Example:
body {
font-family: 'Roboto', Arial, Helvetica, sans-serif;
background-color: #FFFFFF;
color: #000000;
text-align: center;
}
.container {
width: 80%;
display: inline-block;
}
.post {
border: 2px solid #000000;
padding: 0px 4px 0px 4px;
position: relative;
}
.post p,
h2 {
margin: 0;
}
.post h2 {
text-align: center;
}
.post p {
text-align: left;
text-indent: 40px;
line-height: 1.8;
}
hr {
visibility: hidden;
}
.date {
position: absolute;
top: 5px;
right: 10px;
font-size: 12pt;
font-style: italic;
font-weight: normal;
}
#media screen and (max-width: 600px) {
.container {
width: 100%;
}
.post p {
text-align: justify;
text-indent: 0px;
font-size: 14pt;
}
}
<body>
<h1>Welcome to Henry's Blog!</h1>
<div class="container">
<div class="post" id="10">
<span class="date">10/15/17</span>
<h2>Tenth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="9">
<span class="date">10/15/17</span>
<h2>Ninth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="8">
<span class="date">10/15/17</span>
<h2>Eighth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="7">
<span class="date">10/15/17</span>
<h2>Seventh Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="6">
<span class="date">10/15/17</span>
<h2>Sixth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="5">
<span class="date">10/15/17</span>
<h2>Fifth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="4">
<span class="date">10/15/17</span>
<h2>Fourth Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="3">
<span class="date">10/15/17</span>
<h2>Third Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="2">
<span class="date">10/15/17</span>
<h2>Second Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<div class="post" id="1">
<h2>First Post</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Augue neque gravida in fermentum et sollicitudin ac. Feugiat in ante metus dictum. Sed turpis tincidunt id aliquet risus
feugiat in. Venenatis a condimentum vitae sapien. Ut pharetra sit amet aliquam id diam maecenas ultricies. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. Tristique nulla aliquet enim tortor. Vitae elementum curabitur vitae
nunc sed velit dignissim. Turpis cursus in hac habitasse platea dictumst quisque. Dictumst quisque sagittis purus sit amet volutpat consequat mauris nunc.</p>
</div>
<hr>
<p>Blog Posts: 1 2 3 4 5 6 7 8 9 10</p>
</div>
</body>
</html>
Note: because the surrounding elements don't take the absolute positioned element into account, I suggest using media queries to change its position on small screens, instead of trying to squash it
You are looking for position: absolute ...
.date {
font-size: 12pt;
font-style: italic;
font-weight: normal;
position:absolute;
right: 4px
}
then give h2 a appropriate padding for longer headings, like:
.post h2 {
text-align: center;
padding: 0 60px
}
https://jsfiddle.net/Lnnd9u04/

CSS: How to remove a header on the first page of a chapter

I am using CSS to convert HTML to PDF. I add page numbers to the bottom of the page and a name of the chapter to the top of the page (with #top-center, see the CSS and HTML code bellow). This works fine. Then I render PDF with Prince.
I need to avoid printing the page header on the first page (because the heading is already there) and leave the page header only on the second and other pages.
Can you please advise, how to remove the header on the first page of the chapter and leave it on others?
#page {
margin: 27mm 16mm 27mm 16mm;
size: 7in 9.25in;
}
div.chapter {
page: chapter;
}
h1 {
string-set: chapter content();
}
#page chapter:left {
#top-center {
font: 11pt "Bookerly", serif;
content: string(chapter, first);
vertical-align: bottom;
padding-bottom: 2em;
font-variant: small-caps;
color: #888888;
}
#bottom-center {
font: 11pt "Bookerly", serif;
content: counter(page);
padding-top: 2em;
vertical-align: top;
}
}
#page chapter:right {
#top-center {
font: 11pt "Bookerly", serif;
content: string(chapter, first);
vertical-align: bottom;
padding-bottom: 2em;
font-variant: small-caps;
color: #888888;
}
#bottom-center {
font: 11pt "Bookerly", serif;
content: counter(page);
vertical-align: top;
padding-top: 2em;
}
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Book</title>
</head>
<body lang="CS" vlink="purple" link="blue" class="calibre">
<div class="chapter">
<h1 id="c1">Heading</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla est. Duis pulvinar. Aliquam ornare wisi eu metus. Mauris dictum facilisis augue. Nunc auctor. Nulla turpis magna, cursus sit amet, suscipit a, interdum id, felis. Fusce wisi. Etiam ligula pede, sagittis quis, interdum ultricies, scelerisque eu. Curabitur ligula sapien, pulvinar a vestibulum quis, facilisis vel sapien. Duis condimentum augue id magna semper rutrum. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. In enim a arcu imperdiet malesuada. Fusce tellus odio, dapibus id fermentum quis, suscipit id erat.</p>
<p>Integer vulputate sem a nibh rutrum consequat. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Vivamus ac leo pretium faucibus. Donec quis nibh at felis congue commodo. Nulla turpis magna, cursus sit amet, suscipit a, interdum id, felis. Curabitur bibendum justo non orci. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur ligula sapien, pulvinar a vestibulum quis, facilisis vel sapien. In convallis. Curabitur vitae diam non enim vestibulum interdum. In rutrum. Nulla non arcu lacinia neque faucibus fringilla. Vivamus ac leo pretium faucibus. Sed convallis magna eu sem. Nullam rhoncus aliquam metus. Donec ipsum massa, ullamcorper in, auctor et, scelerisque sed, est. Proin in tellus sit amet nibh dignissim sagittis.</p>
<p>Maecenas aliquet accumsan leo. Duis condimentum augue id magna semper rutrum. Pellentesque pretium lectus id turpis. Duis bibendum, lectus ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum id lacus. Etiam bibendum elit eget erat. Integer imperdiet lectus quis justo. Etiam commodo dui eget wisi. Sed ac dolor sit amet purus malesuada congue. Duis viverra diam non justo. Etiam bibendum elit eget erat. Fusce consectetuer risus a nunc. Suspendisse sagittis ultrices augue. In convallis. Etiam commodo dui eget wisi. Mauris metus. Aliquam ante. Nulla non arcu lacinia neque faucibus fringilla.</p>
<p>In rutrum. Praesent in mauris eu tortor porttitor accumsan. Mauris elementum mauris vitae tortor. Morbi scelerisque luctus velit. Integer malesuada. Nullam sit amet magna in magna gravida vehicula. Nullam justo enim, consectetuer nec, ullamcorper ac, vestibulum in, elit. Duis risus. Nam quis nulla. Aliquam erat volutpat. In enim a arcu imperdiet malesuada. Aenean vel massa quis mauris vehicula lacinia. Maecenas fermentum, sem in pharetra pellentesque, velit turpis volutpat ante, in pharetra metus odio a lectus. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Mauris tincidunt sem sed arcu.</p>
<p>Nulla quis diam. Sed vel lectus. Donec odio tempus molestie, porttitor ut, iaculis quis, sem. Maecenas lorem. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec iaculis gravida nulla. Aenean fermentum risus id tortor. Cras elementum. Etiam bibendum elit eget erat. Suspendisse nisl. Praesent vitae arcu tempor neque lacinia pretium. Integer rutrum, orci vestibulum ullamcorper ultricies, lacus quam ultricies odio, vitae placerat pede sem sit amet enim. Etiam egestas wisi a erat. Aenean id metus id velit ullamcorper pulvinar. Pellentesque arcu. Pellentesque ipsum. Fusce tellus.</p>
<p>Mauris elementum mauris vitae tortor. In dapibus augue non sapien. Nullam feugiat, turpis at pulvinar vulputate, erat libero tristique tellus, nec bibendum odio risus sit amet ante. Donec iaculis gravida nulla. Praesent dapibus. Proin mattis lacinia justo. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Nunc auctor. Phasellus enim erat, vestibulum vel, aliquam a, posuere eu, velit. Integer vulputate sem a nibh rutrum consequat. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Morbi leo mi, nonummy eget tristique non, rhoncus non leo. Ut tempus purus at lorem. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.</p>
<p>Vestibulum erat nulla, ullamcorper nec, rutrum non, nonummy ac, erat. Mauris dolor felis, sagittis at, luctus sed, aliquam non, tellus. Sed elit dui, pellentesque a, faucibus vel, interdum nec, diam. Nulla accumsan, elit sit amet varius semper, nulla mauris mollis quam, tempor suscipit diam nulla vel leo. Aliquam erat volutpat. Fusce tellus. Quisque porta. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce wisi. Pellentesque pretium lectus id turpis. Integer in sapien. Sed vel lectus. Donec odio tempus molestie, porttitor ut, iaculis quis, sem.</p>
<p>Mauris metus. Fusce tellus. Fusce aliquam vestibulum ipsum. Integer rutrum, orci vestibulum ullamcorper ultricies, lacus quam ultricies odio, vitae placerat pede sem sit amet enim. Maecenas sollicitudin. Nulla turpis magna, cursus sit amet, suscipit a, interdum id, felis. Donec iaculis gravida nulla. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean fermentum risus id tortor. Integer imperdiet lectus quis justo. Integer malesuada. In sem justo, commodo ut, suscipit at, pharetra vitae, orci.</p>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In laoreet, magna id viverra tincidunt, sem odio bibendum justo, vel imperdiet sapien wisi sed libero. Nulla accumsan, elit sit amet varius semper, nulla mauris mollis quam, tempor suscipit diam nulla vel leo. Vestibulum fermentum tortor id mi. Nam sed tellus id magna elementum tincidunt. Cras pede libero, dapibus nec, pretium sit amet, tempor quis. Aliquam in lorem sit amet leo accumsan lacinia. Etiam dui sem, fermentum vitae, sagittis id, malesuada in, quam. Donec iaculis gravida nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla quis diam.</p>
<p>Suspendisse sagittis ultrices augue. Duis bibendum, lectus ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum id lacus. Mauris elementum mauris vitae tortor. Mauris metus. Nulla pulvinar eleifend sem. In dapibus augue non sapien. Phasellus rhoncus. Cras elementum. Nullam faucibus mi quis velit. Pellentesque ipsum. Sed ac dolor sit amet purus malesuada congue. Et harum quidem rerum facilis est et expedita distinctio.</p>
<p>Pellentesque pretium lectus id turpis. Quisque tincidunt scelerisque libero. Curabitur sagittis hendrerit ante. Vestibulum fermentum tortor id mi. Nullam sit amet magna in magna gravida vehicula. Nullam dapibus fermentum ipsum. Duis pulvinar. Mauris elementum mauris vitae tortor. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Praesent vitae arcu tempor neque lacinia pretium. Nullam sit amet magna in magna gravida vehicula. Quisque tincidunt scelerisque libero. Etiam posuere lacus quis dolor. Praesent vitae arcu tempor neque lacinia pretium. Morbi leo mi, nonummy eget tristique non, rhoncus non leo. Etiam commodo dui eget wisi. Maecenas libero.</p>
<p>In sem justo, commodo ut, suscipit at, pharetra vitae, orci. Aliquam erat volutpat. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat. In sem justo, commodo ut, suscipit at, pharetra vitae, orci. Vestibulum erat nulla, ullamcorper nec, rutrum non, nonummy ac, erat. Vivamus luctus egestas leo. Vestibulum fermentum tortor id mi. Etiam neque. Nulla accumsan, elit sit amet varius semper, nulla mauris mollis quam, tempor suscipit diam nulla vel leo. Nulla non arcu lacinia neque faucibus fringilla. Mauris elementum mauris vitae tortor. Integer tempor.</p>
<p>Mauris tincidunt sem sed arcu. Et harum quidem rerum facilis est et expedita distinctio. Pellentesque ipsum. Phasellus faucibus molestie nisl. In dapibus augue non sapien. Nullam at arcu a est sollicitudin euismod. Curabitur vitae diam non enim vestibulum interdum. Etiam posuere lacus quis dolor. Integer pellentesque quam vel velit. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Integer imperdiet lectus quis justo. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Fusce tellus odio, dapibus id fermentum quis, suscipit id erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Donec quis nibh at felis congue commodo. Fusce wisi.</p>
</div>
</body>
</html>
Adding the following CSS code resolved the issue:
#page chapter:first {
#top-center {
font: 11pt "Bookerly", serif;
content: "";
vertical-align: bottom;
padding-bottom: 2em;
font-variant: small-caps;
color: #888888;
}
#bottom-center {
font: 11pt "Bookerly", serif;
content: counter(page);
padding-top: 2em;
vertical-align: top;
}
}