Я создаю сайт для путешествий для своей задачи разграничения колледжа. Я начал, и все идет хорошо, но я застрял в данный момент. У меня в основном есть три коробки, которые предназначены для содержания некоторого письменного контента, но я не могу заставить их сделать их друг другу. Ящики также должны быть встроены в коробку выше. Любая помощь будет оценена, спасибо заранее.
HTML
<div id="wrapper">
<div id="top">
<div class="logo"> </div>
</div>
<div id="menu">
<div class="button"> Home </div>
<div class="button"> Destinations </div>
<div class="button"> Make A Booking </div>
<div class="button"> Things To Do </div>
<div class="button"> Contact Us </div>
</div>
<div id="box">
content here
</div>
<div id="deal_one">
<div id="deal_two">
<div id="deal_three">
</div>
CSS
#wrapper {
width:80%;
position:relative;
margin:0 auto;
}
#top {
width:100%;
height:200px;
background-color:rgba(0,95,160,1);
border:solid 2px #000;
position:relative;
}
#menu {
width:100%;
height:150px;
background-color:#fff;
border:solid 2px #000;
text-align:center;
position:relative;
display:inline-block;
}
#box {
width:100%;
min-height:500px;
background-color:rgba(0,95,160,1);
margin-top:0;
border:solid 2px #000;
position:relative;
}
.button {
font-family:Verdana, Geneva, sans-serif;
font-size:15pt;
display:inline-block;
margin:4.5% 5% 0;
}
.logo {
position:relative;
background-image:url(../Images/Logo%203.png);
background-size:650px;
width:500px;
height:900px;
top:-30%;
display:inline-block;
z-index:500;
background-repeat:no-repeat;
margin:0 auto 0 -10%;
}
#deal_one {
width:320px;
height:300px;
background-color:rgba(0,95,160,1);
border:solid 2px #000;
margin-top:5%;
margin-left:.1%;
position:relative;
}
#deal_two {
width:320px;
height:300px;
background-color:rgba(0,95,160,1);
border:solid 2px #000;
margin-top:5%;
margin-left:116.5%;
position:relative;
}
#deal_three {
width:320px;
height:300px;
background-color:rgba(0,95,160,1);
border:solid 2px #000;
margin-top:5%;
margin-left:118.8%;
position:relative;
}
Вот несколько шагов для завершения ваших работ.
div
(все три) правильно.display:inline-block
для всех трех разделов.width
каждого блока примерно на 33%, а не на 33%, так как некоторое пространство также берется по марже.HTML
<div id="threeBoxContainer">
<div id="deal_one"></div>
<div id="deal_two"></div>
<div id="deal_three"></div>
</div>
CSS
#threeBoxContainer div {
display: inline-block;
background-color: yellow;
}
#deal_one {
width: 33%;
height: 300px;
background-color: rgba(0, 95, 160, 1);
border: solid 2px black;
margin-top: 5%;
}
#deal_two {
width: 32%;
height: 300px;
background-color: rgba(0, 95, 160, 1);
border: solid 2px black;
margin-top: 5%;
}
#deal_three {
width: 33%;
height: 300px;
background-color: rgba(0, 95, 160, 1);
border: solid 2px black;
margin-top: 5%;
}
Прежде всего: вы должны закрыть свои divs: <div id="deal_one"></div>
Как @GoE уже прокомментировал; лучше их плавать. Также дает вам возможность немного облегчить им работу (когда это необходимо):
HTML:
<div id="deal_one" class="deal"></div>
<div id="deal_two" class="deal"></div>
<div id="deal_two" class="deal"></div>
CSS:
.deal { float: left; width: 30%; margin-right: 5%; }
.deal:last-child { margin-right: 0; }
То, что я здесь делаю, - это плавать по сделкам и устанавливать правильную маржу, чтобы держать их в стороне. Последний div не должен иметь правого края, потому что вы хотите, чтобы он придерживался стороны содержимого, а следовательно :last-child
правила :last-child
. В скрипке я добавил box-sizing: border-box
потому что в противном случае граница добавляется к ширине, и, таким образом, div будет более широким, чем 30%, и приведет к тому, что последний упадет на следующую строку.
display:inline-block;
http://jsfiddle.net/pRyzE/9/
not closing off tags
. (Поскольку ваш пример скрипки не закрывает div #wrapper
).
Я не могу оставлять комментарии, но кажется, что вам нужно удалить top
и добавить float: left
до этих трех div. Надеюсь это поможет