#html #css #margin
#HTML #css #запас
Вопрос:
Я пытаюсь получить 3 раздела рядом друг с другом. Они должны заполнить пространство размером 980 пикселей, но у левого и правого разделов может не быть поля снаружи.
Как мне это исправить?
Комментарии:
1. Насколько велики разрешенные поля … потому что это важно.
2. я получил 3 раздела шириной 310 пикселей, и только у второго раздела должно быть поле 25 пикселей слева и 25 пикселей справа.
3. Вы медленно предоставляете нам больше деталей о том, что вы пытаетесь сделать. ПОЖАЛУЙСТА, найдите время, чтобы написать еще несколько деталей и опубликовать HTML.
4. @user3652488: Вот решение, которое можно использовать, если у вас 6, 9 или более разделов в контейнере. Единственное отличие от решения, которое я представил, заключается в использовании
:nth-of-type
селектора с «формулой». В остальном подход точно такой же: jsfiddle.net/JQD3U . Приветствия.
Ответ №1:
Используйте :first-child
и :last-child
, чтобы установить поля равными нулю.
Предполагая, что ваши столбцы имеют класс column
, вы можете использовать следующий CSS-код
.column:first-child { margin-left: 0; }
.column:last-child { margin-right: 0; }
Комментарии:
1. Я вижу, но я извлекаю данные из своей базы данных. Таким образом, я получу примерно 30 разделов, 10 строк с 3 разделами рядом друг с другом..
2. Поместите каждые 3 раздела в отдельный контейнер строк. Строки должны располагаться друг над другом и занимать 100% ширины.
Ответ №2:
Вот решение, которое не использует поля: http://jsfiddle.net/c33eM /.
HTML:
<div class = "container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
CSS:
.container {
width: 980px;
outline: 1px solid red;
display: table;
text-align: center;
}
.container > div {
width: 310px;
background-color: #ccc;
height: 100px;
line-height: 100px;
text-align: center;
border: 1px solid #aaa;
box-sizing: border-box;
}
.container > div:first-of-type {
float: left;
}
.container > div:nth-of-type(2) {
display: inline-block;
}
.container > div:last-of-type {
float: right;
}
Комментарии:
1. За исключением того, что это работает только с 3 внутренними разделениями … добавьте еще три (как прокомментировал OP), и это сломается.
2. В вопросе указан контейнер размером 980 пикселей, а в комментариях к вопросу упоминаются три внутренних раздела размером 310 пикселей каждый. Это требования, с которыми я работал. Если OP хочет добавить больше разделов, то это легко решается просто с помощью селектора n-го типа и с использованием «формулы». Вот так, гений: jsfiddle.net/JQD3U .
Ответ №3:
CSS
.container {
width:980px;
background-color: pink;
overflow: hidden;
}
.box {
width:310px;
margin-right:25px;
float:left;
height:75px;
background-color: #663399;
margin-bottom: 10px;
}
.container div:nth-child(3n) {
/* removes margin-right from every 3rd div */
margin-right:0;
}