Я пытаюсь разместить несколько фотографий на веб-странице и хочу, чтобы они располагались горизонтально группами по два человека. Прямо сейчас они просто идут вертикально вниз по левой стороне моей области содержимого. Вот код, который я использую для галереи:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Synergy Music Academy: Media</title>
<meta charset="utf-8">
<link rel="stylesheet" href="project.css">
<link href='http://fonts.googleapis.com/css?family=Anton' rel='stylesheet' type='text/css'>
</head>
<body>
<div id="wrapper">
<h1>Synergy Music Academy</h1>
<div id="nav">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="services.html">Services</a></li>
<li><a href="media.html">Media</a></li>
<li><a href="about.html">About</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
<div id="content">
<div id="gallery">
<ul>
<li>
<a href="images/jack.jpg"><img src="images/jackthumb.jpg" width="200" height="200"
alt="Jack">
<span><img src="images/jack.jpg" width="400" height="400" alt="Jack"><br>
Singing</span></a>
</li>
<li>
<a href="images/band.jpg"><img src="images/bandthumb.jpg" width="200" height="200"
alt="Band Workshop">
<span><img src="images/band.jpg" width="400" height="400" alt="Band Workshop"><br>
Band Workshop</span></a>
</li>
<li>
<a href="images/synths.jpg"><img src="images/synthsthumb.jpg" width="200" height="200"
alt="Fun with Synths">
<span><img src="images/synths.jpg" width="400" height="400" alt="Fun with Synths"><br>
Fun with Synths</span></a>
</li>
<li>
<a href="images/tallon.jpg"><img src="images/tallonthumb.jpg" width="200" height="200"
alt="Tallon">
<span><img src="images/tallon.jpg" width="400" height="400" alt="Tallon"><br>
Chris & Tallon</span></a>
</li>
</ul>
</div>
</div>
<div class="nav">
<a href="index.html">Home</a>
<a href="services.html">Services</a>
<a href="media.html">Media</a>
<a href="about.html">About</a>
<a href="blog.html">Blog</a>
<a href="contact.html">Contact</a>
</div>
</div>
</body>
</html>
И мой CSS выглядит так:
body {background-color: #A0A0A0; background-image: url(images/background.jpg);}
#wrapper {margin-left: auto;margin-right: auto;width: 80%; min-width: 960px;box-shadow: inherit;}
h1 { text-align: center;
background-color: #FFFFFF;
padding-right: 10px;
padding-top: 20px;
padding-bottom: 20px;
padding-left: 10px;
font: 55px/1.4em nimbus-sans-tw01con,sans-serif;
color: #3F3E91;
}
#nav {font-family: anton, sans-serif;font-size: large;padding: 5px; float: left;width:
160px;padding-top: 20px;padding-right: 5px; padding-bottom: 5px;padding-left: 20px;}
#nav a { text-decoration: none; }
#nav a:link{color: #3F3E91;}
#nav a:visited {color: #0066CC;}
#nav a:hover {color: #000000;}
#nav ul { list-style-type: none;margin: 0;padding-left: 0; }
#content{background-color: #FFFFFF;margin-left: 160px;padding-top: 1px;padding-left: 20px;padding-right: 20px;}
#footer {font-size: .70em; font-style: italic; text-align: center;padding: 10px;}
.nav {text-align: center;}
.clear {clear: both;}
.address{text-align: center;}
#mobile { display: none; }
#desktop { display: inline; }
#gallery {
position: relative;
clear: both;
}
#gallery ul {
width: 300px;
list-style-type: none;
}
#gallery img {
border-style: none;
float: none;
padding: 0;
}
#gallery a {
text-decoration: none;
color: #333;
font-style: italic;
}
#gallery span {
display: none;
}
#gallery a:hover span {
display: block;
position: absolute;
top: 10px;
left: 340px;
text-align: center;
}
Любая помощь приветствуется. Благодарность!
6 ответов
Я проверил этот код ... и вам нужно поменять разные вещи ...
Вот модифицированный css
#nav {
float: left;
font-family: anton, sans-serif;
font-size: large;
padding: 20px 5px 5px 20px;
position: absolute; /* */
width: 160px;
}
#content{
background-color: #FFFFFF;
margin-left: 160px;
padding-left: 20px;
padding-right: 20px;
padding-top: 1px;
}
#gallery {
clear: both;
display: block;
margin: 0;
padding: 0;
position: relative;
top: 0;
}
#gallery ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 410px;
}
#gallery ul li {
display: inline-block; /* To put 2 images in the same line */
}
И рекомендация: всегда используйте файл сброса css. Это поможет вам увидеть одно и то же во всех браузерах. Основным является
* { margin: 0; padding: 0; }
Вы можете использовать свойство display
.
Свойство display указывает тип поля, используемого для элемента HTML.
Попробуй это:
#gallery li {
display:inline-block;
}
Вы можете использовать селектор css3: nth-child, чтобы помочь в этом. Отказ от ответственности: это не будет работать в старых браузерах, таких как IE8 и ниже.
#gallery li { float: left; }
#gallery li:nth-child(odd) { clear: left; }
Если вам нужно, чтобы это работало в более старом браузере, вам нужно будет добавить классы в элементы списка.
<li class="odd">...</li>
<li class="even">...</li>
#gallery li { float: left; }
#gallery li.odd { clear: left; }
Попробуйте следующий CSS:
#gallery {
font-size:0;
}
#gallery li {
display:inline-block;
width:50%;
}
#gallery li img {
width:100%;
}
Это означает, что элементы вашего списка будут встроенными в блок, то есть они будут располагаться рядом друг с другом (в строке), но вы также можете объявлять для них размеры, как если бы они были блочными элементами.
Затем, когда вы установите ширину на 50%, два элемента списка поместятся в каждой строке.
Затем вам нужно установить размер шрифта в контейнере равным нулю, чтобы пустое пространство между тегами не выталкивало элементы списка вниз на следующей строке.
И, наконец, установка ширины изображений на 100% означает, что они заполнят весь элемент списка, фактически делая их ровно половиной ширины контейнера.
Вы можете попробовать использовать свойство columns:
#gallery ul {
columns: 2;
-webkit-columns: 2;
-moz-columns: 2;
}
Дополнительную информацию можно найти здесь.
Я бы рекомендовал использовать div для создания таблицы с 1 строкой и 2 столбцами. Затем поместите каждое изображение в отдельный столбец. Bootstrap действительно решил эту проблему.
Html:
<div class="row">
<div class="col-md-6">
<!-- Place Image 1 div here-->
</div>
<div class="col-md-6">
<!-- Place Image 2 div here-->
</div>
</div>
Затем вы должны добавить классы row и col-md-6 в свою таблицу стилей. Хотя я настоятельно рекомендую использовать бутстрап, чтобы воспользоваться медиа-запросами.
CSS:
.row {
margin-left: -15px;
margin-right: -15px;
}
.row:before,
.row:after{
content: " ";
display: table;
}
.row:after{
clear: both;
}
.col-md-6 {
position: relative;
min-height: 1px;
padding-left: 15px;
padding-right: 15px;
width: 50%;
}
Похожие вопросы
Новые вопросы
html
HTML (язык гипертекстовой разметки) — это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто в паре с [CSS] и [JavaScript].