С этого сайта:
В отличие от изображений, ячейки таблицы по умолчанию выравниваются по середине по вертикали:
Из текста этого вопроса ,
Теоретически вертикальное выравнивание должно работать внутри элемента с display:table-cell. Это всегда работает, если вы добавите обертку с display:table вокруг. Но когда у него нет обертки, иногда он будет работать, а иногда вертикальное выравнивание будет полностью игнорироваться...
В этом SSCCE a.previous-slide-arrow
и a.next-slide-arrow
имеют display: table-cell;
, и у них есть оболочка first-viewport
с display:table;
, но все же vertical-align
не работает на a.previous-slide-arrow
и a.next-slide-arrow
. Почему? И что мне сделать, чтобы все заработало?
Код:
.image-slideshow-container {
}
.image-slideshow-container img {
position: fixed;
display: none;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
}
img.slider-image1 {
display: block;
}
.first-viewport {
height: 100%;
width: 100%;
position: absolute;
display: table;
}
a.previous-slide-arrow, a.next-slide-arrow {
width:128px;
height:128px;
display: table-cell;
vertical-align: middle;
position: relative;
color: transparent;
opacity: 0.7;
text-align: center; /* =s */
left: 20px;
background-image: url("https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-ios7-arrow-left-128.png");
background-repeat: no-repeat;
}
a.next-slide-arrow {
right: 20px;
left: auto;
background-image: url("https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-ios7-arrow-right-128.png");
}
.navigation-arrows-container a.previous-slide-arrow:hover,
.navigation-arrows-container a.next-slide-arrow:hover {
opacity: 1;
}
.navigation-bullets-container {
text-align: center;
margin-top: 20px;
margin-bottom: 60px;
display: table-cell;
vertical-align: bottom;
position: relative;
}
.navigation-bullets-container span {
display: none;
}
.navigation-bullets-container a {
width: 20px;
height: 20px;
display: inline-block;
margin-right: 5px;
background: #4b4040;
}
.navigation-bullets-container a:hover{
background: black;
}
.navigation-bullets-container a.active {
background: black;
}
<div class="image-slideshow-container">
<img class="slider-image1" src="http://i992.photobucket.com/albums/af42/webtreatsetc/Textures%20Patterns%20Brushes%20from%20Webtreats/LightBlur.png" alt="pitcher!"/>
<img class="slider-image2" src="http://m.rgbimg.com/cache1vNdB6/users/x/xy/xymonau/600/ooNRizq.jpg" alt="pitcher!"/>
<img class="slider-image3" src="http://cdn.desktopwallpapers4.me/media/thumbs_400x250/3/23394.jpg" alt="pitcher!"/>
<img class="slider-image4" src="http://papers.co/wallpaper/papers.co-sd19-sand-storm-gradient-blur-8-wallpaper.jpg" alt="pitcher!"/>
<img class="slider-image5" src="http://m.rgbimg.com/cache1sw4YI/users/x/xy/xymonau/600/nxXqi9O.jpg" alt="pitcher!"/>
<img class="slider-image6" src="http://previews.123rf.com/images/hospitalera/hospitalera0805/hospitalera080500016/3089997-Halftone-blue-pattern-with-little-dots-and-some-zoom-blur-applied--Stock-Photo.jpg" alt="pitcher!"/>
</div>
<div class="first-viewport">
<a class="previous-slide-arrow" href="#"><</a>
<div class="navigation-bullets-container">
<a class="navigation-bullet1" href="javascript: changeImage(1)" >
<span>Bullet</span>
</a>
<a class="navigation-bullet2" href="javascript: changeImage(1)" >
<span>Bullet</span>
</a>
<a class="navigation-bullet3" href="javascript: changeImage(1)" >
<span>Bullet</span>
</a>
<a class="navigation-bullet4" href="javascript: changeImage(1)" >
<span>Bullet</span>
</a>
<a class="navigation-bullet5" href="javascript: changeImage(1)" >
<span>Bullet</span>
</a>
<a class="navigation-bullet6" href="javascript: changeImage(1)" >
<span>Bullet</span>
</a>
</div>
<a class="next-slide-arrow" href="#">></a>
</div>
background-position: center;
для вертикального выравнивания фонового изображения. Приведенное выше решение работает только с содержимым внутри элемента, а не с атрибутомbackground-image
. - person pqdong   schedule 15.04.2015