Выравнивание изображений по левому краю ul block
Выравнивание изображения (400x100) по левому краю ul
блок: некоторые элементы находятся на правой стороне изображения, некоторые элементы находятся под изображением. Как сделать ul
блок остаться вместе? т.е. все элементы находятся на правой стороне изображения. Также изображение перекрывается с ul
блок.
<img src="url" align="left">
<div>
<ul>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
</ul>
</div>
3 ответа
Просто добавьте display: inline-block;
на ваш <ul>
, Это устанавливает <ul>
отображаться в той же строке, что и изображение, сохраняя его вместе следующим образом:
img {
width: 400px;
height: 100px;
}
ul {
display: inline-block;
}
<img src="url" align="left">
<div>
<ul>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
</ul>
</div>
В вашем конкретном случае:
ul {
clear: left;
}
(если вы хотите ul под изображением)
http://codepen.io/anon/pen/xRENMB
(Но вы должны использовать класс для ul и правила, чтобы другие ul
не пострадает)
Первое, что вы должны сделать, это удалить align="left"
атрибут из вашего img
элемент, так как все элементы выровнены по умолчанию по левому краю, а атрибут align обычно зарезервирован только для table
элемент по умолчанию. img
а также div
элементы имеют display: block;
атрибут по умолчанию. Есть два достойных решения вашей проблемы.
1. Поплавайте два элемента и не забудьте очистить свои поплавки. Вы также должны иметь привычку правильно делать отступы, чтобы вы могли видеть отношения родитель-потомок в вашей HTML-структуре.
HTML
<div class="container">
<img src="#">
<div>
<ul>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
<li>Hello</li>
</ul>
</div>
</div>
CSS
img,
div {
float: left;
}
.container {
overflow: hidden;
}
2. Установите оба элемента как элементы встроенного блока.
CSS
img,
div {
display: inline-block;
}