麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

微信小程序開發中的垂直居中實戰教程

2020-03-21 16:30:25
字體:
來源:轉載
供稿:網友

程序開發中的垂直居中實戰教程。

一、垂直居中

(系統筆記之) 父元素高度確定的【單行】文本

父元素高度確定的單行文本的豎直居中的方法是通過設置父元素的 height 和 line-height 高度一致來實現的;

line-height: 顧名思義,行高(行間距),指在文本中,行與行之間的 基線間的距離 )。

line-height 與 font-size 的計算值之差,在CSS中成為“行間距”。分為兩半,分別加到一個文本行內容的頂部和底部。

這種文字行高與塊高一致帶來了一個弊端:當文字內容的長度大于塊的寬時,就有內容脫離了塊。

最后效果見下邊的第一條 1.行高+高度:line-height:Npx(N = 與元素高度相同的值);

(系統筆記之) 父元素高度確定的【多行】文本

父元素高度確定的多行文本、圖片等的豎直居中的方法有兩種:

方法一:使用插入 table (包括tbody、tr、td)標簽,同時設置 vertical-align:middle。

css 中有一個用于豎直居中的屬性 vertical-align,在父元素設置此樣式時,會對inline-block類型的子元素都有用。下面看一下例子:

html代碼:

1

2

3

4

看我是否可以居中。p>

5p>

6 tr>table>

7body>

css代碼:

1 table td{height:500px;background:#ccc}

因為 td 標簽默認情況下就默認設置了 vertical-align 為 middle,所以我們不需要顯式地設置了。

方法二:設置塊級元素的 display 為 table-cell(設置為表格單元顯示)

但這種方法兼容性比較差,只是提供大家學習參考。

在 chrome、firefox 及 IE8 以上的瀏覽器下可以設置塊級元素的 display 為 table-cell(設置為表格單元顯示),激活 vertical-align 屬性,

但注意 IE6、7 并不支持這個樣式, 兼容性比較差。

html

1

 

2

3

看我是否可以居中。p>

4

看我是否可以居中。p>

5

看我是否可以居中。p>

6p>

7p>

css

1

這種方法的好處是不用添加多余的無意義的標簽,但缺點也很明顯,它的兼容性不是很好,不兼容 IE6、7而且這樣修改display的block變成了table-cell,破壞了原有的塊狀元素的性質。

2017-04-25 17:53:04

————————————————————————————————————————————————————————————————————————————————————————————————————

其他三點我自己總結的方法如下:(其中第一條也是父元素高度確定的單行文本的處理方法)

1.行高+高度:line-height:Npx(N = 與元素高度相同的值);

正如N的值那樣,這種解決方法就是要盒模型是有高度設置的。舉例:

.box {

width: 45px;

height: 60px;

line-height: 60px;

}

高度是60px,行高也設置為60px,這樣,就可以實現垂直居中的問題。

小程序開發,微信小程序,垂直居中

如圖:影視二字就可以垂直居中了。

可行性分析:就像圖片中看到的那樣,只有兩個字,他們排在一行不會換行,一旦換行的話,行高就會應用于文字,由于行高過大的原因,會導致剩下的文字跑出畫面了。

如右圖:

小程序開發,微信小程序,垂直居中

2:【父元素高度確定】定位+外邊距:position:absolute;top:50%;margin-top: -Bpx;(B是元素的高度/2的值)

這里就不一定需要盒模型的固定高度了,只需要物體的高度,比如字體。至于怎么獲得字體的高度,就去瀏覽器的調試工具(Dreamweaver也可以也有這個功能,實時編輯的工具都是可以的。)中看。當不設置高度值得時候,將鼠標移到對應的標簽上,自然會有寬高顯示出來。

小程序開發,微信小程序,垂直居中

喏:

這么一看高度就是19px;

所以設置的話:

.box{

position: absolute;

top: 50%;

margin-top: -10px;

}

可行性分析:絕對定位absolute是一個魔鬼,不到萬不得已不能碰他。

那么怎么既避免absolute的絕對定位使用,又要實現想要的布局呢?

3:【父元素高度確定】外邊距+高度:margin-top:50%-Mpx;(M是元素的高度/2的值)

不知道這種寫法,以前也沒有見過。但是正如開篇說的那樣,我從來沒這么想過可以這么玩css,所以很多次我既想要設置width是100%,又要刨除掉padding、border等的值。你就不知道應該是百分幾了!當然我后來是用box-sizing解決了,讓padding'等算進了總width中,但有時候涉及到響應式的話,還是很麻煩的要弄好多個@media來限制,動輒上30了,那是多么的土且笨的解決啊。直到那么一天,我接受了老師的偶然實驗的想法,讓我眼前一亮,那就是讓css做加減法!

說到讓css自己做加減法,我以前記得看一本書(or文章吧!who care)是有講過css可以做加減法,但我竟然沒想到,讓他做不同單位值得加減法!老師也是一臉興奮的跟我講,我也不知道可以這樣,那天就是試了試,沒想到成功了。哈哈,是啊,偉大而又神奇的css,總是給我們驚喜。這就是我愛它的原因吧。

但我想,直接讓css做加減法既然是可以的,何必還調用這個看上去就像個js函數一樣的東東呢?畢竟他不是兼容性的。

css直接做加減法的方法雖然直白且低級,但是我們沒有后遺癥啊!(我只是隨便說說,畢竟我沒有測試過!不負責任奧!!!233333)

廢話說了這么多,就是一個核心理念,不管什么單位和數值了,那么頭疼的響應式運算,就交給我們的css自動運算吧。

額(⊙o⊙)…貌似變換成了水平的問題解決。

好,那接下來就是水平:

——————————————————————————————————————————————————

二、水平居中(系統筆記見最后邊)

1:【內聯元素】文本居中:text-align:center(不解釋)

可行性分析:一個盒子內部的文字、元素(有固定寬度)的居中問題他是可以解決的。

那么條件不夠呢?

沒條件就要創造條件嘛!沒有wrap就包一個嘛!沒有寬度就定下來嘛!別矯情。問題總是可以解決的。

2:【定寬塊元素】自動水平外邊距:margin:0 auto;(更加不想解釋)

0:垂直方向margin可變值,表示margin-top、margin-bottom兩個的值,如果設置的話,二者一樣。如果不想二者一樣,可以在auto后再設置一個:margin: Apx auto Bpx;

auto:水平方向margin,auto就是自動,也算是讓css自動計算距離左右的位置吧,

可行性分析:必須要元素定寬,即要設置寬度值。

3:【需要定寬】絕對定位+外邊距:position:absolute;left:50%;margin-left: -Bpx;(B是元素的寬度/2的值)(更加不想解釋)

有個盒模型,他有自己的寬度高度、又是絕對定位。這種情況,想讓他水平居中的話用text-align與margin:0 auto;的方法都是不可取的。畢竟absolute已經飛起來了,脫離了文檔流,任何限制都對他沒有作用了。但是,好處是不管他以前什么屬性,用了absolute之后就可以設置寬高。所以就有了解決辦法。

.box{

position: absolute;

top: -15px;

left: 50%;

width: 30px;

height: 30px;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产专区 | 国产在线免 | av电影直播 | 午夜视频播放 | 中文字幕在线视频网站 | 性片网站 | 手机国产乱子伦精品视频 | 一本视频在线观看 | 精品一区二区三区免费视频 | 九草视频 | 中文日产幕无线码6区免费版 | 天天舔天天插 | 成人综合免费视频 | 色偷偷欧美 | 久久精品视频3 | 久久99精品视频在线观看 | 久久久久久精 | 久久久久久久久久久久久国产精品 | 久久99亚洲精品久久99果 | freexxx69性欧美hd| 欧美成人综合视频 | 线观看免费完整aaa 久久不雅视频 | 久久国产精品二国产精品 | omofun 动漫在线观看 | 视频一区二区三区在线播放 | 91天堂国产在线 | 在线亚洲欧美日韩 | fc2成人免费人成在线观看播放 | 亚洲国产二区 | 欧美巨乳在线观看 | 91经典视频 | 免费国产自久久久久三四区久久 | 草草视频免费 | 视频www| 日本在线不卡一区二区三区 | 国产精品一区网站 | 成人一级视频 | 4p嗯啊巨肉寝室调教男男视频 | 久久久久国产一区二区三区不卡 | 在线成人免费av | 精品一区二区久久久久久久网精 |