[вёрстка] Верстаем панель вкладок для сайта. Часть 4.
В предыдущей статье мы смогли создать красивую и технологичную панель вкладок с использованием :target и даже сделали приятную анимацию переключения вкладок. Однако панель вкладок получилась фиксированного размера. Можно ли её переверстать так, чтобы высота панели менялась в зависимости от содержимого вкладок?
Можно. Ценой этому является отказ от плавного переключения вкладок. Мы используем традиционный подход с переключением режима display none — display block и скрестим его с селекторами :target.
Не буду долго объяснять, как устроен код этого примера, ведь если вы разобрались с тем, как работают примеры из предыдущей статьи, вам уже любой CSS по плечу. Сразу покажу, что у меня получилось:
Исходный код:
<style>
.notebookC {
position: relative;
min-width: 500px;
width: 85%;
margin: 2em auto;
padding-bottom: 30px;
}
.notebookC > span {
display: none;
}
.notebookC > h3 {
position: absolute;
margin: 0px;
padding: 0px;
top: 0px;
height: 30px;
width: 120px;
border-radius: 5px 5px 0px 0px;
background-color: inherit;
text-align: center;
font-size: 13px;
color: #777;
line-height: 30px;
font-weight: normal;
}
.notebookC > h3 a {
display: block;
text-decoration: none;
color: inherit;
}
.notebookC > h3:nth-of-type(1) { left: 10px; }
.notebookC > h3:nth-of-type(2) { left: 135px; }
.notebookC > h3:nth-of-type(3) { left: 260px; }
.notebookC > h3,
.notebookC > span:not(:nth-of-type(1)):target ~ h3:nth-of-type(1) {
background-color: #ddd;
}
.notebookC > span:nth-of-type(1):target ~ h3:nth-of-type(1),
.notebookC > span:nth-of-type(2):target ~ h3:nth-of-type(2),
.notebookC > span:nth-of-type(3):target ~ h3:nth-of-type(3),
.notebookC > h3:nth-of-type(1) {
background-color: #fff;
}
.notebookC > div {
position: relative;
top: 30px;
border-radius: 5px;
box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.1);
width: 100%;
padding: 1px 20px;
}
.notebookC > div,
.notebookC > span:not(:nth-of-type(1)):target ~ div:nth-of-type(1) {
background-color: #ddd;
display: none;
}
.notebookC > span:nth-of-type(1):target ~ div:nth-of-type(1),
.notebookC > span:nth-of-type(2):target ~ div:nth-of-type(2),
.notebookC > span:nth-of-type(3):target ~ div:nth-of-type(3),
.notebookC > div:nth-of-type(1) {
background-color: #fff;
display: block;
}
</style>
<div style='background-color: #c0cfff; padding: 30px;'>
<div class='notebookC'>
<span id='tabX1-1'></span>
<span id='tabX1-2'></span>
<span id='tabX1-3'></span>
<h3><a href="#tabX1-1">Вкладка 1</a></h3>
<h3><a href="#tabX1-2">Вкладка 2</a></h3>
<h3><a href="#tabX1-3">Вкладка 3</a></h3>
<div>
<p>Содержимое первой вкладки</p>
<p>Бла бла бла...</p>
<p><img src='https://lh3.googleusercontent.com/-XGgw41OSARk/VePicTdAdgI/AAAAAAAAAS4/WeBbxp4ebQg/s400-Ic42/00099_manaisland_1920x1200.jpg' alt=''></p>
</div>
<div>
<p>Содержимое второй вкладки</p>
<p>Бла бла бла...</p>
<p>Бла бла бла...</p>
<p><img src='https://lh3.googleusercontent.com/-aafAKIoTkT4/VePihWk2BHI/AAAAAAAAATA/zQVtiYD_eDc/s400-Ic42/00201_lakejipe_1920x1200.jpg' alt=''></p>
</div>
<div>
<p>Содержимое третьей вкладки</p>
<p>Бла бла бла...</p>
<p>Бла бла бла...</p>
<p>Бла бла бла...</p>
<p><img src='https://lh3.googleusercontent.com/-BLXeHJNyOqw/VePimp_e_wI/AAAAAAAAATQ/BVw_9LFehyU/s400-Ic42/00442_pyrenees_1920x1200.jpg' alt=''></p>
<p>Бла бла бла...</p>
<p>Бла бла бла...</p>
</div>
</div>
</div>



1 комментарий
Очень помогло. Написано очень понятно, схватывается на лету. Автору спасибо!
Отправить комментарий