I restyled a checkbox to look like a button, because I want text to appear below the button when the button is clicked. I can only use CSS and HTML, anything else is incompatible with the program I need to work in. This checkbox hack allows me to have a pointer event, instead of a hover / active. Only two problems occur, and I can't find the solution.
When clicked the first button removes the rest of the buttons from the row, second button removes buttons on its right, third button removes buttons on its right etc etc.
Does anyone know what needs to be changed in order to get it working?
Also I would like to add something that will make sure that when the button is active and something else besides the text box is clicked the text box dissapears. So that you can't have multiple buttons active at once.
Fairly new to CSS, sorry for any weird stuff in the code.
#images {
margin: none;
padding: none;
border: none;
height: 144px;
width: 720px;
z-index:10;
}
.checked-selector {display: none;
z-index:100;}
:checked ~ .checked-selector {display: block;z-index:100;}
input.hidden[type=checkbox] {position: absolute;left: -999em;z-index:100;}
.checkbox {}
.checkbox2 {
position:relative;
left:144px;
top:-149px;
}
.checkbox3 {
position:relative;
left:288px;
top:-297px;
}
.checkbox4 {
position:relative;
left:432px;
top:-445px;
}
.checkbox5 {
position:relative;
left:576px;
top:-593px;
}
.box p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: relative;
top:-19px;
left:2px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-29.jpg);
z-index:100;
}
.box2 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: relative;
top:-18px;
left:-142px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-30.jpg);
z-index:100
}
.box3 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: relative;
top:-18px;
left:-286px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-31.jpg);
z-index:100
}
.box4 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: relative;
top:-19px;
left:-430px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-32.jpg);
z-index:100
}
.box5 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: relative;
top:-19px;
left:-574px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-33.jpg);
z-index:100
}
.box6 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 105px;
width: 680px;
position: relative;
top:-17px;
left:2px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-34.jpg);
z-index:100
}
<div class="images" id="images">
<div class="checkbox">
<label for="toggle-hidden_1" >
<img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-08.jpg" width="144" height="144" alt="inschrijving"></label>
<input type="checkbox" id="toggle-hidden_1" class="hidden" value="1"/>
<div class="checked-selector" value="1"> <div class="box">
<div class="container" id="hover"><p>
Als bevestiging van je inschrijving bij de TU Delft ontvang je uiterlijk binnen één maand nadat je aan de inschrijvingsverplichtingen hebt voldaan het Bewijs van Inschrijving, maar niet eerder dan medio augustus.</p></div></div></div></div>
<div class="checkbox2">
<label for="toggle-hidden_2"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-11.jpg" width="144" height="144" alt="eerstejaarsweekend"></label>
<input type="checkbox" id="toggle-hidden_2" class="hidden" value="2"/>
<div class="checked-selector"value="2"/><div class="box2"> <div class="container" id="hover"><p>Het Stylos Eerstejaars Ontvangstweekend (SteeOwee) is van vrijdag 15 t/m zondag 17 augustus. Dit weekend is specifiek voor eerstejaars studenten Bouwkunde, inschrijven kan via de website van studievereniging Stylos.</p> </div></div></div></div>
<div class="checkbox3">
<label for="toggle-hidden_3"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-12.jpg" width="144" height="144" alt="eerste collegedag"></label>
<input type="checkbox" id="toggle-hidden_3" class="hidden" value="3"/>
<div class="checked-selector"value="3"/><div class="box3"> <div class="container" id="hover"><p>Op maandag 1 september 2014 begin je aan je eerste dag op de faculteit. Er is een speciaal programma voor alle eerstejaars waarbij je verplicht aanwezig moet zijn. Je ontvangt in augustus een brief met meer informatie over het programma van die dag.</p> </div></div></div></div>
<div class="checkbox4">
<label for="toggle-hidden_4"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-14.jpg" width="144" height="144" alt="bouwkunde startpakket"></label>
<input type="checkbox" id="toggle-hidden_4" class="hidden" value="4"/>
<div class="checked-selector"value="4"/><div class="box4"> <div class="container" id="hover"><p>Alle materialen die je nodig hebt voor handtekenen, vormstudie en ontwerpprojecten vind je in het Bouwkunde starterspakket, welke je bij Waltman’s Bouwshop kan aanschaffen. De aankoop van dit pakket is niet verplicht, maar wordt wel aanbevolen. Tijdens je studie heb je ook verschillende materialen nodig voor het maken van maquettes. Deze kun je ook bij Waltman kopen, en/of bij de balie in de Zuidserre. Het gehele pakket is de eerste weken van september verkrijgbaar in de Bouwshop voor € 125.00.</p> </div></div></div></div>
<div class="checkbox5">
<label for="toggle-hidden_5"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-13.jpg" width="144" height="144" alt="studiemateriaal"></label>
<input type="checkbox" id="toggle-hidden_5" class="hidden" value="5"/>
<div class="checked-selector"value="5"/><div class="box5"> <div class="container" id="hover"><p>Als je je hebt ingeschreven ontvang je voor aanvang van het studiejaar een brief met daarin o.a. een boekenlijst. Deze boeken zijn verkrijgbaar bij Waltman’s Bouwshop, de materialen- en boekenwinkel naast de hoofdingang van Bouwkunde. Gedurende je studie heb je ook readers nodig. Deze kun je bestellen via Blackboard onder de tab ‘MyStudentInfo’.</p> </div></div></div></div>
</div>
It looks like you are using too many repeated class names. Some fixes for you:
Rename .box to .box1.
Add a common class .box for all the .box, .box2, .box3, .box4, .box4, .box5, .box6.
Copy all the common CSS from all those .box, .box2, .box3, .box4, .box4, .box5, .box6 to .box instead.
Replace the following CSS in each box:
position: relative;
top: -{some value};
With:
position: absolute;
top: auto;
Try giving a position: absolute; top: auto; for the paragraph?
#images {
margin: none;
padding: none;
border: none;
height: 144px;
width: 720px;
z-index:10;
}
.checked-selector {display: none;
z-index:100;}
:checked ~ .checked-selector {display: block;z-index:100;}
input.hidden[type=checkbox] {position: absolute;left: -999em;z-index:100;}
.checkbox {}
.checkbox2 {
position:relative;
left:144px;
top:-149px;
}
.checkbox3 {
position:relative;
left:288px;
top:-297px;
}
.checkbox4 {
position:relative;
left:432px;
top:-445px;
}
.checkbox5 {
position:relative;
left:576px;
top:-593px;
}
.box p{
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: absolute;
top: auto;
left:2px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-29.jpg);
z-index:100;
}
.box2 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: absolute;
top: auto;
left:-142px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-30.jpg);
z-index:100
}
.box3 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: absolute;
top: auto;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-31.jpg);
z-index:100
}
.box4 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: absolute;
top: auto;
left:-430px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-32.jpg);
z-index:100
}
.box5 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 104px;
width: 680px;
position: absolute;
top: auto;
left:-574px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-33.jpg);
z-index:100
}
.box6 p{
font:Arial;
font-family: Arial;
font-size: 14px;
height: 105px;
width: 680px;
position: absolute;
top: auto;
left:2px;
padding:20px;
text-align: justify;
color: #FFF;
background:url(http://estherslagter.nl/images/New%20folder2/first%20tryout-34.jpg);
z-index:100
}
<div class="images" id="images">
<div class="checkbox">
<label for="toggle-hidden_1" >
<img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-08.jpg" width="144" height="144" alt="inschrijving"></label>
<input type="checkbox" id="toggle-hidden_1" class="hidden" value="1"/>
<div class="checked-selector" value="1"> <div class="box">
<div class="container" id="hover"><p>
Als bevestiging van je inschrijving bij de TU Delft ontvang je uiterlijk binnen één maand nadat je aan de inschrijvingsverplichtingen hebt voldaan het Bewijs van Inschrijving, maar niet eerder dan medio augustus.</p></div></div></div></div>
<div class="checkbox2">
<label for="toggle-hidden_2"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-11.jpg" width="144" height="144" alt="eerstejaarsweekend"></label>
<input type="checkbox" id="toggle-hidden_2" class="hidden" value="2"/>
<div class="checked-selector"value="2"/><div class="box2"> <div class="container" id="hover"><p>Het Stylos Eerstejaars Ontvangstweekend (SteeOwee) is van vrijdag 15 t/m zondag 17 augustus. Dit weekend is specifiek voor eerstejaars studenten Bouwkunde, inschrijven kan via de website van studievereniging Stylos.</p> </div></div></div></div>
<div class="checkbox3">
<label for="toggle-hidden_3"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-12.jpg" width="144" height="144" alt="eerste collegedag"></label>
<input type="checkbox" id="toggle-hidden_3" class="hidden" value="3"/>
<div class="checked-selector"value="3"/><div class="box3"> <div class="container" id="hover"><p>Op maandag 1 september 2014 begin je aan je eerste dag op de faculteit. Er is een speciaal programma voor alle eerstejaars waarbij je verplicht aanwezig moet zijn. Je ontvangt in augustus een brief met meer informatie over het programma van die dag.</p> </div></div></div></div>
<div class="checkbox4">
<label for="toggle-hidden_4"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-14.jpg" width="144" height="144" alt="bouwkunde startpakket"></label>
<input type="checkbox" id="toggle-hidden_4" class="hidden" value="4"/>
<div class="checked-selector"value="4"/><div class="box4"> <div class="container" id="hover"><p>Alle materialen die je nodig hebt voor handtekenen, vormstudie en ontwerpprojecten vind je in het Bouwkunde starterspakket, welke je bij Waltman’s Bouwshop kan aanschaffen. De aankoop van dit pakket is niet verplicht, maar wordt wel aanbevolen. Tijdens je studie heb je ook verschillende materialen nodig voor het maken van maquettes. Deze kun je ook bij Waltman kopen, en/of bij de balie in de Zuidserre. Het gehele pakket is de eerste weken van september verkrijgbaar in de Bouwshop voor € 125.00.</p> </div></div></div></div>
<div class="checkbox5">
<label for="toggle-hidden_5"><img src="http://estherslagter.nl/images/New%20folder2/first%20tryout-13.jpg" width="144" height="144" alt="studiemateriaal"></label>
<input type="checkbox" id="toggle-hidden_5" class="hidden" value="5"/>
<div class="checked-selector"value="5"/><div class="box5"> <div class="container" id="hover"><p>Als je je hebt ingeschreven ontvang je voor aanvang van het studiejaar een brief met daarin o.a. een boekenlijst. Deze boeken zijn verkrijgbaar bij Waltman’s Bouwshop, de materialen- en boekenwinkel naast de hoofdingang van Bouwkunde. Gedurende je studie heb je ook readers nodig. Deze kun je bestellen via Blackboard onder de tab ‘MyStudentInfo’.</p> </div></div></div></div>
</div>
For what you're doing, I'd use radio rather than checkbox so that users can't make multiple selections.
If you have something like this, you can style the labels any way you want:
/* Styles */
input[name="toggles"] {
display: none;
}
.toggles label {
display: inline-block;
padding: 20px;
color: white;
}
.toggles label:hover {
cursor: pointer;
text-decoration: underline;
}
.frame #tab1,
.frame #tab2,
.frame #tab3 {
display: none;
border: solid 1px black;
padding: 20px;
}
/* Tab Controls */
#toggle-tab1:checked ~ .toggles #label-tab1,
#toggle-tab2:checked ~ .toggles #label-tab2,
#toggle-tab3:checked ~ .toggles #label-tab3 {
background: black;
}
#label-tab1 {
background: red;
}
#label-tab2 {
background: blue;
}
#label-tab3 {
background: green;
}
#toggle-tab1:checked ~ .frame #tab1 {
display: block;
}
#toggle-tab2:checked ~ .frame #tab2 {
display: block;
}
#toggle-tab3:checked ~ .frame #tab3 {
display: block;
}
<!-- Controls -->
<input name="toggles" type="radio" id="toggle-tab1" checked>
<input name="toggles" type="radio" id="toggle-tab2">
<input name="toggles" type="radio" id="toggle-tab3">
<div class="toggles">
<!--Tab 1 -->
<label id="label-tab1" for="toggle-tab1">Hello World 1</label>
<!--Tab 2 -->
<label id="label-tab2" for="toggle-tab2">Hello World 2</label>
<!--Tab 3 -->
<label id="label-tab3" for="toggle-tab3">Hello World 3</label>
</div>
<div class="frame">
<div id="tab1">Hello! This is tab1!</div>
<div id="tab2">Hello! This is tab2!</div>
<div id="tab3">Hello! This is tab3!</div>
</div>
Pen: http://codepen.io/abenjamin/pen/KpedvV
Related
The code I have made contains two boxes that when the screen is big the text boxes will align horizontally, and it is perfect when it is on full screen. the problem is when I resize the browser the second text box sticks to the right side of the screen, (this is because of the right float). I have tried anything but when I remove the float the whole box disappears underneath the nav bar.
What I would like is when the screen is to small for the boxes to align next to each other that they will automatically align vertically.
Thanks guys you are awesome!
.reviews{
/* background-color: antiquewhite;*/
/* width: 400px;*/
text-align: center;
/* margin-left: 250px;*/
padding: 20px;
margin-top: -175px;
height: 280px;
font-size: 14px;
min-width: 200px;
}
.review1{
display: block;
border: 2px, black;
width: 20rem;
height: 20rem;
float: left;
margin-left: 230px;
padding: 10px;
border-style: hidden;
border-color: rgba(176, 178, 184, 0.4);
border-collapse: collapse;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
min-width: 150px;
}
.review2{
display: block;
/* width: 350; */
width: 20rem;
height: 20rem;
float:right;
margin-right: 14.375rem;
padding: 10px;
border-spacing: 20px;
border-style: hidden;
border-color: rgba(176, 178, 184, 0.4);
border-collapse: collapse;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
min-width: 150px;
}
.list{
text-align: left;
list-style:none;
text-align: center;
}
</div>
<div class="reviews">
<div class="review1">
<img src="white-about.png" height="100px" />
<h3>Roland</h3>
<p>"Wij hebben Cisco-training gehad van Marcel.
Hij weet de technische achtergrond van de materie perfect begrijpelijk onder woorden te brengen,
Zelfs de lastiger zaken. Hij is een geboren docent."</p>
</div>
<div class="review2">
<img src="white-about.png" height="100px" />
<h3>Eddy</h3>
<p>"Marcel is een zeer fijne en goede collega,
hij neemt zijn tijd voor de uitleg is een zeer goede Cisco docent. Hij heeft heel veel kennis van Cisco en daar heb ik dankbaar gebruik van gemaakt Dus al met al is Marcel een hele fijne collega."</p>
</div>
</div>
You can try something like this with css grid:
.wrapper{
max-width:900px;
margin:auto;
}
.reviews{
display:grid;
grid-gap:10px;
grid-template-columns: repeat(auto-fill, 300px);
max-width:900px;
justify-content:space-between;
}
.review{
border: 2px solid black;
}
<div class="wrapper">
<div class="reviews">
<div class="review">
<img src="white-about.png" height="100px" />
<h3>Roland</h3>
<p>"Wij hebben Cisco-training gehad van Marcel.
Hij weet de technische achtergrond van de materie perfect begrijpelijk onder woorden te brengen,
Zelfs de lastiger zaken. Hij is een geboren docent."</p>
</div>
<div class="review">
<img src="white-about.png" height="100px" />
<h3>Eddy</h3>
<p>"Marcel is een zeer fijne en goede collega,
hij neemt zijn tijd voor de uitleg is een zeer goede Cisco docent. Hij heeft heel veel kennis van Cisco en daar heb ik dankbaar gebruik van gemaakt Dus al met al is Marcel een hele fijne collega."</p>
</div>
</div>
</div>
I need to make a simple CSS website. But I have a problem with my fixed footer. It falls over my buttons. I have tried making it an inline-block element. Then it stays right under the buttons. But when I resize the page it goes over my brandstory class. Is there any way to fix this problem? I'm new to CSS.
.main-navigation li{
display: inline-block;
margin: 0.1% 1%;
padding: 0%;
}
a{
color: white;
text-decoration: none;
}
.current{
text-decoration: underline;
}
.brandstory{
position: absolute;
margin-right: 25%;
height: 500px;
}
img{
width: 25%;
margin-left: 75%;
display: block;
}
.item-of-the-month{
color: black;
}
.text-block{
margin-left: 75%;
border: 1px solid black;
margin-top: 0%;
padding-top: 1%;
padding-bottom: 1%;
background: white;
text-align: center;
}
.buttons{
margin-left: 75%;
}
.button{
background-color: #000;
border: 1px solid red;
margin-top: -1.2%;
padding: 1%;
color: white;
font-family: Georgia,Times,Times New Roman,serif;
text-align: center;
text-decoration: none;
display: block;
}
.ForwardFashion{
position: fixed;
left: 0;
bottom: 0;
width: 100%;
background-color: black;
color: white;
text-align: left;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ForwardFashion</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body>
<div class="header">
<h1>ForwardFashion</h1>
</div>
<div class="main-navigation">
<li><h3>Home</h3></li>
<li><h3>Interviews</h3></li>
<li><h3>Webshop</h3></li>
</div>
<div class="brandstory">
<p>ForwardFashion is sinds 2018 de place to be, als het gaat om upcoming fashionhypes. ForwardFashion biedt naast fashionnieuws ook de allerhipste fashionitems aan. Daarnaast interviewen designers en influencers met een forward-kijk op fashion. ForwardFashion is niet voor niets Forward. Waar andere fashionsites in het verleden blijven hangen, kijken wij verder. Wij schuwen niet voor mode met technologie. Dat zou jij ook niet moeten doen! Dus waar wacht je op, kijk rond in onze webshop, ga lekker zitten voor een interview en blijf op de hoogte in ForwardFashionland.</p>
</div>
<div class="container">
<img src="images/glassboots.jpg">
<div class="text-block">
<h4>Item of the Month</h4>
</div>
</div>
<div class="buttons">
Instagram
Youtube
Pinterest
Twitter
</div>
<footer class="ForwardFashion">
<p>© ForwardFashion</p>
</footer>
</body>
</html>
One thing you need to consider when you are making your footer fixed is, you have to leave some space in <body> element so that the fixed footer gets some space to avoid it overlapping the content part. Try this code
body {
padding-bottom: 100px;
}
How to put the line <hr> about 15 px above the bottom of the text block somewhere between button and bottom textblock?
.box {
background: white;
float: right;
position: relative
}
.space {
padding: 15px;
}
img {
max-width: 100%;
}
.button {
position: absolute;
bottom: 40px;
margin-left: 15px;
}
#media (max-width:768px) {
.button {
position: relative;
bottom: auto;
margin-left: 15px;
}
}
<div class="box">
<img class="box" src="https://d2f0ora2gkri0g.cloudfront.net/e4/16/e4164876-1967-4303-9a57-aae00eb2b22b.png" alt="oproeien" style="margin-right:0px; margin-left:0px">
<h2 class="space">Amsterdam</h2>
<p class="space">Amsterdam is de (titulaire) hoofdstad en naar inwonertal de grooteeuw tot stadsuitbreidingen, waaronder de laatste grachten van de fortificatie die nu als grachtengordel bekend is en in 2010 is toegevoegd aan de UNESCO-Werelderfgoedlijst.</p>
<a class="button" href="https://www.buienradar.nl">Slecht weer</a>
<hr>
</div>
Why not simply border on text that you can easily control with padding:
.box {
background: white;
float: right;
position: relative
}
.space {
padding: 15px;
}
p.space {
border-bottom:1px solid #000;
}
img {
max-width: 100%;
}
.button {
position: absolute;
bottom: 40px;
margin-left: 15px;
}
#media (max-width:768px) {
.button {
position: relative;
bottom: auto;
margin-left: 15px;
}
}
<div class="box">
<img class="box" src="https://d2f0ora2gkri0g.cloudfront.net/e4/16/e4164876-1967-4303-9a57-aae00eb2b22b.png" alt="oproeien" style="margin-right:0px; margin-left:0px">
<h2 class="space">Amsterdam</h2>
<p class="space">Amsterdam is de (titulaire) hoofdstad en naar inwonertal de grooteeuw tot stadsuitbreidingen, waaronder de laatste grachten van de fortificatie die nu als grachtengordel bekend is en in 2010 is toegevoegd aan de UNESCO-Werelderfgoedlijst.</p>
<a class="button" href="https://www.buienradar.nl">Slecht weer</a>
</div>
And if you want to control the width of the line you can consider a linear-gradient trick (or pseudo-element):
.box {
background: white;
float: right;
position: relative
}
.space {
padding: 15px;
}
p.space {
background:linear-gradient(to bottom,transparent calc(100% - 1px),#000 0) 0 0/50% 100% no-repeat;
}
img {
max-width: 100%;
}
.button {
position: absolute;
bottom: 40px;
margin-left: 15px;
}
#media (max-width:768px) {
.button {
position: relative;
bottom: auto;
margin-left: 15px;
}
}
<div class="box">
<img class="box" src="https://d2f0ora2gkri0g.cloudfront.net/e4/16/e4164876-1967-4303-9a57-aae00eb2b22b.png" alt="oproeien" style="margin-right:0px; margin-left:0px">
<h2 class="space">Amsterdam</h2>
<p class="space">Amsterdam is de (titulaire) hoofdstad en naar inwonertal de grooteeuw tot stadsuitbreidingen, waaronder de laatste grachten van de fortificatie die nu als grachtengordel bekend is en in 2010 is toegevoegd aan de UNESCO-Werelderfgoedlijst.</p>
<a class="button" href="https://www.buienradar.nl">Slecht weer</a>
</div>
I have 3 divs placed next to each other, they have same heights and widths. but for some reason the one is placed higher than the other. they're still next to each other, but the margin from the top is different for every single 1 of them.
html:
<div class="diensten">
<div id="dienst1">
<h2>Ontruimingsoefening</h2>
<p>Wij verzorgen diverse ontruimingsoefeningen die afgestemd zijn op zorginstellingen, onderwijsinstellingen, kinderdagverblijven, horecagelegenheden en detailhandel. De ontruimingsoefeningen kunnen zowel theoretisch (Table Top) als praktisch toegepast worden waarbij wij gebruik maken van professionele hulpmiddelen om de ontruimingsoefening zo realistisch mogelijk te maken.</p>
<img src="Foto's/IMG_2670.JPG" data-tilt data-tilt-max="30" data-tilt-speed="400" data-tilt-perspective="900">
</div>
<div id="dienst2">
<h2>Beheer brandmeldinstallatie</h2>
<p>Wij verzorgen de verplichte maandelijkse en viermaandelijkse beheerderstaken van de brandmeldinstallatie conform NEN 2654 op professionele wijze voor zorginstellingen, onderwijsinstellingen, kinderdagverblijven, horecagelegenheden, kantoorgebouwen en detailhandel. Het onderhoud van de brandmeldinstallatie bestaat uit het testen van de doormelding naar de brandweer van automatische rookmelders en handbrandmelders, het testen van de doormelding van storingen aan de brandmeldinstallatie, een visuele controle van de aangesloten componenten, het bijwerken en onderhouden van het logboek.</p>
<img src="Foto's/IMG_2704.JPG">
</div>
<div id="dienst3">
<h2>Camerabeveiliging</h2>
<p>Wij verzorgen uw camera beveiliging. Registratie wat er in en rond uw pand gebeurt, het kan door middel van camera’s welke worden geprojecteerd in overleg, zodat de verzochte beelden kunnen worden opgeslagen op een harddisk recorder. Camera’s zijn er in diverse types. Voor de nachtelijke situatie kunnen er lampen worden geplaatst, ook zijn er camera’s welke in het donker automatisch overschakelen naar zwart-wit en doormiddel van ingebouwde infrarood verlichting nog uitstekend beeld geven. Tevens is het koppelen van camerabeelden met een Particuliere Alarmcentrale mogelijk.</p>
</div>
css:
.diensten h2 {
padding-top: 40px;
}
.diensten p, h2 {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
padding: 20px;
}
.diensten {
position: absolute;
display: inline-block;
height: 500px;
background-color: #FFFFFF;
margin: auto;
}
#dienst1 {
margin-left: 90px;
position: relative;
display: inline-block;
height: 500px;
width: 500px;
box-shadow: 0px 0px 30px 0px #000;
}
#dienst2 {
margin-left: 90px;
position: relative;
display: inline-block;
height: 500px;
width: 500px;
box-shadow: 0px 0px 30px 0px #000;
}
#dienst3 {
margin-left: 90px;
position: relative;
display: inline-block;
height: 500px;
width: 500px;
box-shadow: 0px 0px 30px 0px #000;
}
#dienst2 img{
height: 300px;
width: 450px;
}
#dienst1 img {
position: relative;
display: block;
margin: auto;
width: 450px;
margin-top: 100px;
box-shadow: 0px 0px 20px 0px #000;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
#dienst2 img{
position: relative;
display: block;
margin: auto;
width: 450px;
height: 350px;
margin-top: 30px;
box-shadow: 0px 0px 20px 0px #000;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
#dienst3 img{
margin: auto;
height: 330px;
width: 450px;
margin-top: 50px;
box-shadow: 0px 0px 20px 0px #000;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
The middle one is taller. If you want them aligned to the top of their parent, add vertical-align: top to the 3 divs.
.diensten h2 {
padding-top: 40px;
}
.diensten p, h2 {
font-family: Gotham, "Helvetica Neue", Helvetica, Arial, "sans-serif";
padding: 20px;
}
.diensten {
position: absolute;
display: inline-block;
height: 500px;
background-color: #FFFFFF;
margin: auto;
}
#dienst1 {
margin-left: 90px;
position: relative;
display: inline-block;
height: 500px;
width: 500px;
box-shadow: 0px 0px 30px 0px #000;
}
#dienst2 {
margin-left: 90px;
position: relative;
display: inline-block;
height: 500px;
width: 500px;
box-shadow: 0px 0px 30px 0px #000;
}
#dienst3 {
margin-left: 90px;
position: relative;
display: inline-block;
height: 500px;
width: 500px;
box-shadow: 0px 0px 30px 0px #000;
}
#dienst2 img{
height: 300px;
width: 450px;
}
#dienst1 img {
position: relative;
display: block;
margin: auto;
width: 450px;
margin-top: 100px;
box-shadow: 0px 0px 20px 0px #000;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
#dienst2 img{
position: relative;
display: block;
margin: auto;
width: 450px;
height: 350px;
margin-top: 30px;
box-shadow: 0px 0px 20px 0px #000;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
#dienst3 img{
margin: auto;
height: 330px;
width: 450px;
margin-top: 50px;
box-shadow: 0px 0px 20px 0px #000;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.diensten > div {
vertical-align: top;
}
<div class="diensten">
<div id="dienst1">
<h2>Ontruimingsoefening</h2>
<p>Wij verzorgen diverse ontruimingsoefeningen die afgestemd zijn op zorginstellingen, onderwijsinstellingen, kinderdagverblijven, horecagelegenheden en detailhandel. De ontruimingsoefeningen kunnen zowel theoretisch (Table Top) als praktisch toegepast
worden waarbij wij gebruik maken van professionele hulpmiddelen om de ontruimingsoefening zo realistisch mogelijk te maken.</p>
<img src="Foto's/IMG_2670.JPG" data-tilt data-tilt-max="30" data-tilt-speed="400" data-tilt-perspective="900">
</div>
<div id="dienst2">
<h2>Beheer brandmeldinstallatie</h2>
<p>Wij verzorgen de verplichte maandelijkse en viermaandelijkse beheerderstaken van de brandmeldinstallatie conform NEN 2654 op professionele wijze voor zorginstellingen, onderwijsinstellingen, kinderdagverblijven, horecagelegenheden, kantoorgebouwen
en detailhandel. Het onderhoud van de brandmeldinstallatie bestaat uit het testen van de doormelding naar de brandweer van automatische rookmelders en handbrandmelders, het testen van de doormelding van storingen aan de brandmeldinstallatie, een
visuele controle van de aangesloten componenten, het bijwerken en onderhouden van het logboek.</p>
<img src="Foto's/IMG_2704.JPG">
</div>
<div id="dienst3">
<h2>Camerabeveiliging</h2>
<p>Wij verzorgen uw camera beveiliging. Registratie wat er in en rond uw pand gebeurt, het kan door middel van camera’s welke worden geprojecteerd in overleg, zodat de verzochte beelden kunnen worden opgeslagen op een harddisk recorder. Camera’s zijn
er in diverse types. Voor de nachtelijke situatie kunnen er lampen worden geplaatst, ook zijn er camera’s welke in het donker automatisch overschakelen naar zwart-wit en doormiddel van ingebouwde infrarood verlichting nog uitstekend beeld geven.
Tevens is het koppelen van camerabeelden met een Particuliere Alarmcentrale mogelijk.</p>
</div>
I am making a manual with html/css/js and to go through the manual I made two buttons.
This is what it looks like:
The strange this is, the first previewed menu-item 'introductie' has the same css code as the fourth previewed menu-item 'hart meten'. But why is there a gap between the paragraph and the buttons in the previewed 'introductie' ?
my code:
HTML
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8"/>
<title>Hartmeting</title>
<link rel="stylesheet" href="css/stylesheet.css" type="text/css">
</head>
<body>
<div id="wrapper">
<header>
<div id="logo" onclick="window.location.href='http://localhost/Zorg_Heartbeat%20Manual/'">
<img src="img/logo.png" alt="logo" />
<h1 >Hartmeting voor fitte mensen</h1>
</div>
</header>
<!-- Stappenplan Menu -->
<nav id="menu">
<ul>
<li> Introductie </li>
<li> Het Probleem </li>
<li> Stappenplan </li>
<li> Hartmeting </li>
</ul>
</nav>
<!-- HET STAPPENPLAN -->
<div id="content">
<!-- Intro Slide -->
<article id="menu_a">
<h2>Introductie</h2><br>
<figure>
<img src="img/intro1.jpeg" alt="Intro Afbeelding"/>
</figure>
<p>Joggers zijn actieve mensen die graag tussen werk en/of studie nog even de kilometers willen pakken. Hierin houden ze graag bij of ze fitter worden of niet, zo zul je vaak zien dat joggers hun rusthartslag meten om een indicatie van positieve 'progress' te kunnen inzien. Het bijhouden van de gezondheid hoort eigenlijk niet alleen bij joggers, maar bij elk fit persoon die graag de resultaten wilt vastpakken. Zonder dat je een smartwatch nodig hebt, kun je met elk apparaat die beschikking heeft tot het internet, je hartslag meten!</p>
</article>
<!-- Slide 1 -->
<article id="menu_b">
<h2>Het Probleem</h2><br>
<figure>
<img src="img/hetprobleem1.jpg" alt="Eerste Afbeelding"/>
</figure>
<p>Maar waarom een WebApp die je hartslag meet? Simpel, smartwatches zijn nou eenmaal veels te duur, je gebruikt ze niet altijd en daarnaast zijn ze de meeste ook nog eens privacy gevoelig.</p>
</article>
<!-- Slide 2 -->
<article id="menu_c">
<h2>Hoe kan mijn hartslag meten?</h2><br>
<figure>
<img src="img/polsmeten.png" alt="Tweede Afbeelding"/>
</figure>
<ol id="stappen">
<li>Ga gerust zitten.</li>
<li>Houd je wijsvinger en middelvinger tegen elkaar.</li>
<li>Leg beide vingers links of rechts van de adamsappel (zoek naar een kloppende beweging).</li>
<li>Klik met je linker muisknop op de box elke keer dat je een klopping voelt.</li>
<li>Doe dit achtereenvolgend tot dat je 10 keer hebt geklikt (dus 10 kloppingen).</li>
<li>De pop-up laat je gemiddelde hartslag per minuut zien.</li>
</ol>
</article>
<!-- Slide 3 -->
<article id="menu_d">
<h2>Hart Meten</h2><br>
<figure>
<!-- Hartmeet tool -->
<div id="klik_Hart" class="heart">
</div>
<br>
<br>
<br>
<!-- Einde hartmeet tool-->
</figure>
<ol id="stappen">
<li>Een normaal rustend hart van een volwassenen meet tussen de 60 - 100 hartslagen per minuut.</li>
<li>Boven de 100 is slecht.</li>
<li>Richting de 40 is goed.</li>
</ol>
</article>
<!-- ABOUT -->
<!-- <div id="about">
<p>TEST TEST TEST TEST TEST TEST TEST TEST TEST </p>
</div> -->
<!-- vorige/volgende buttons -->
<table id="volgorde">
<th><button class="button" id="previous">Previous</button></th>
<th><button class="button" id="next">Next</button></th>
<th>
<!-- Checkbox Auto Slider -->
<div class="auto_menu">
<input type="checkbox" id="checkbox">
<label for="checkbox">Auto Handleiding</label>
</div>
<!-- -->
</th>
</table>
<div id="myNav" class="overlay">
×
<div class="overlay-content">
<p> Wij zijn ....</p>
</div>
</div>
</div>
<div id="buffer"></div>
<footer>
<a id="footer_" href="#" onclick="openNav()">☰ Over ons </a>
</footer>
</div>
<script src="js/jquery-3.1.1.js" type='text/javascript'></script>
<script src="js/scripts1.js" type='text/javascript'></script>
</body>
</html>
CSS
#titel{ color: #B0C4DE; text-align: center;}
/*Verstop alle artikelen binnen content*/
article {
display:none;
}
body{
background-color: #333333;
color: grey;
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
font-size: 12pt;
width: 100%%
}
#wrapper{
background-color: #ADD8E6;
width: 90%;
margin-left: auto;
margin-right: auto;
/*background-image: url("../img/bg.jpg");*/
background-size: cover;
background-position: left top;
border: 2px groove #001f3f;
overflow: auto;
}
#content{
margin-left: auto;
margin-right: auto;
float: left;
width: 70%;
}
#content img{
height: 250px;
width: 450px;
}
#menu{
font-weight: thin;
color: #424242;
float: left;
width: 15%;
text-align: center;
margin-left: 5%;
margin-top: 6.7%;
font-size: 10pt;
}
ul{list-style-type: none;}
h1{ text-shadow: 1px 1px 3px #00008B;}
a{
display: block;
text-decoration: none;
color: #0074D9;
background-color: #001f3f;
border: 1px solid #B0C4DE;
padding: 5px;
}
a:hover{
background-color: #FFD900;
color: #001f3f;
}
footer{
overflow: hidden;
clear: both;
}
#volgorde{
font-weight: thin;
color: grey;
width: 10%;
text-align: center;
clear: both;
margin-left: 3%;
margin-bottom: 2%;
}
.button {
background-color: #001f3f;
color: #FFDC00;
border: none;
color: white;
padding: 5px 30px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
display: block;
}
.button:hover{
background-color: #FFD900;
color: #001f3f;
}
.heart{
color:#FBF9FF;
background-image: url("../img/hart4.png");
background-size: 150px 150px;
height: 150px;
width: 150px;
}
.heart:hoover{
color: #FFA07A;
background-color: grey;
}
#uitleg p {
color: #FA8072;
}
#logo img {
float: left;
width: 60px;
height: 60px;
margin-left: 2%;
}
#logo h1 {
position: relative;
top: 15px;
left: 10px;
}
#klik_ {
text-align: center;
}
article p {
height: 200px;
width: 450px;
font-size: 10pt;
color: grey;
font-weight: bold;
overflow: scroll;
margin-left: 4%;
margin-bottom: 5%;
text-align: justify;
text-justify: inter-word;
}
#buffer{
clear: both;
height: 10%;
}
#stappen{
font-weight: bold;
font-size: 10pt;
}
.auto_menu {
position: relative;
margin: 5px auto;
width: 160px;
font-size: 14px;
}
/*OVER ONS OVERLAY*/
.overlay {
height: 0%;
width: 100%;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0, 0.9);
overflow-y: hidden;
transition: 0.5s;
}
.overlay-content {
position: relative;
top: 25%;
width: 100%;
text-align: center;
margin-top: 30px;
}
.overlay a {
padding: 8px;
text-decoration: none;
font-size: 36px;
color: #818181;
display: block;
transition: 0.3s;
}
.overlay a:hover, .overlay a:focus {
color: #f1f1f1;
}
.overlay .closebtn {
position: absolute;
top: 20px;
right: 45px;
font-size: 60px;
}
#media screen and (max-height: 450px) {
.overlay {overflow-y: auto;}
.overlay a {font-size: 20px}
.overlay .closebtn {
font-size: 40px;
top: 15px;
right: 35px;
}
}
EDIT: Web Inspector Shows:
Screenshot showing findings
So I think it might be:
margin-bottom: 5%;
when I deleted this, nothing happened..
You defined the height of your p. That means that your element will always stay at the height of 200px, no matter the content inside the element.
In order to change that to a dynamic height change it to:
display: inline-block;
height: auto;
The code is pretty straight forward, you display what is within the block. The height is automatically adjusted depending on the inline of that block.