類比公交月台豎直排列,左右對齊,月台豎直左右對齊
今天看到一個公家車月台的公家站牌,對站名的相片順序很有興趣,html和css沒有提供文字豎直排列的簡便方法,需要我們利用一些技巧才能完成
大概要的效果就是這樣的,豎直排列,左右對齊
首先先對豎直排列進行設計
先上html代碼:
1 <ul> 2 <li><b>站牌1</b></li> 3 <li><b>站牌2</b></li> 4 <li><b>長站牌3</b></li> 5 <li><b>很長的站牌4</b></li> 6 <li><b>超長的站牌5</b></li> 7 <li><b>站牌6</b></li> 8 <li><b>站牌一二7</b></li> 9 <li><b>站牌一8</b></li>10 <li><b>站牌9</b></li>11 <li><b>站牌一二10</b></li>12 <li><b>站牌1</b></li>13 <li><b>站牌2</b></li>14 <li><b>長站牌3</b></li>15 <li><b>很長的站牌4</b></li>16 <li><b>超長的站牌5</b></li>17 </ul>
先對ul進行一些基本的配置:
1 ul {2 width: 260px;3 height: 90px;4 border: 1px solid yellow;5 margin: 15px;6 list-style: none;7 }
初步的效果是:
利用flex伸縮盒來實現效果:
ul { width: 260px; height: 90px; border: 1px solid yellow; margin: 15px; list-style: none; /*定義flex伸縮盒*/ display: -webkit-flex; display: flex; /*設定伸縮盒的子項目向左右對齊*/ justify-content: space-between; -webkit-justify-content: space-between; -moz-justify-content: space-between;}ul li { font-size: 11px; /*固定寬度使文字強制換行豎直排列*/ width: 12px; text-align: center; height: 80px; margin-top: 5px;}
豎直排列的效果:
接下來是豎直方向的左右對齊,我使用的方法是給每一個元素加上一個標籤,在li裡面再定義一個flex盒子,以達到效果,個人感覺有點麻煩:
html代碼:
<ul> <li><span>站</span><span>牌</span><span>1</span></li> <li><span>站</span><span>牌</span><span>2</span></li> <li><span>長</span><span>站</span><span>牌</span><span>3</span></li> <li><span>很</span><span>長</span><span>的</span><span>站</span><span>牌</span><span>4</span></li> <li><span>超</span><span>長</span><span>的</span><span>站</span><span>牌</span><span>5</span></li> <li><span>站</span><span>牌</span><span>6</span></li> <li><span>站</span><span>牌</span><span>一</span><span>二</span><span>7</span></li> <li><span>站</span><span>牌</span><span>一</span><span>8</span></li> <li><span>站</span><span>牌</span><span>9</span></li> <li><span>站</span><span>牌</span><span>一</span><span>二</span><span>10</span></li> </ul>
css代碼:
ul { width: 260px; height: 90px; border: 1px solid yellow; margin: 15px; list-style: none; /*定義flex伸縮盒*/ display: -webkit-flex; display: flex; /*設定伸縮盒的子項目向左右對齊*/ justify-content: space-between; -webkit-justify-content: space-between; -moz-justify-content: space-between;}ul li { font-size: 11px; /*固定寬度使文字強制換行豎直排列*/ width: 12px; text-align: center; height: 80px; margin-top: 5px; /*定義li的flex伸縮盒*/ display: -webkit-flex; display: flex; /*設定伸縮盒的子項目向左右對齊*/ justify-content: space-between; -webkit-justify-content: space-between; -moz-justify-content: space-between; /*設定子項目的排列方向是豎直方向*/ flex-direction: column; -webkit-flex-direction: column; -moz-flex-direction: column; /*即每個li的子項目span為豎直方向的左右對齊*/}
最終的效果是:
主要用到的3句代碼是:
display:flex; 定義flex伸縮盒
justify-content; 設定子項目的對齊
flex-direction;設定伸縮盒子項目的方向