html+css 13

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?開篇十三章

1履澳、盒模型代碼簡寫

還記得在講盒模型時外邊距(margin)、內(nèi)邊距(padding)和邊框(border)設(shè)置上下左右四個方向的邊距是按照順時針方向設(shè)置的:上右下左皆怕。具體應(yīng)用在margin和padding的例子如下:

margin:10px 15px 12px 14px;/*上設(shè)置為10px、右設(shè)置為15px、下設(shè)置為12px丹莲、左設(shè)置為14px*/

通常有下面三種縮寫方法:

1春寿、如果top朗涩、right、bottom绑改、left的值相同谢床,如下面代碼:

margin:10px 10px 10px 10px;

可縮寫為:

margin:10px;

2、如果top和bottom值相同厘线、left和 right的值相同识腿,如下面代碼:

margin:10px 20px 10px 20px;

可縮寫為:

margin:10px 20px;

3、如果left和right的值相同造壮,如下面代碼:

margin:10px 20px 30px 20px;

可縮寫為:

margin:10px 20px 30px;

注意:padding渡讼、border的縮寫方法和margin是一致的。


2耳璧、顏色值縮寫

關(guān)于顏色的css樣式也是可以縮寫的成箫,當(dāng)你設(shè)置的顏色是16進制的色彩值時,如果每兩位的值相同旨枯,可以縮寫一半蹬昌。

例子1:

p{color:#000000;}

可以縮寫為:

p{color: #000;}

例子2:

p{color: #336699;}

可以縮寫為:

p{color: #369;}


3、字體縮寫

網(wǎng)頁中的字體css樣式代碼也有他自己的縮寫方式召廷,下面是給網(wǎng)頁設(shè)置字體的代碼:

body{

? ? font-style:italic;

? ? font-variant:small-caps;

? ? font-weight:bold;

? ? font-size:12px;

? ? line-height:1.5em;

? ? font-family:"宋體",sans-serif;

}

這么多行的代碼其實可以縮寫為一句:

body{

? ? font:italic? small-caps? bold? 12px/1.5em? "宋體",sans-serif;

}

注意:

1凳厢、使用這一簡寫方式你至少要指定 font-size 和 font-family 屬性,其他的屬性(如 font-weight竞慢、font-style先紫、font-variant、line-height)如未指定將自動使用默認值筹煮。

2遮精、在縮寫時 font-size 與 line-height 中間要加入“/”斜扛。

一般情況下因為對于中文網(wǎng)站,英文還是比較少的本冲,所以下面縮寫代碼比較常用:

body{

? ? font:12px/1.5em? "宋體",sans-serif;

}

只是有字號准脂、行間距、中文字體檬洞、英文字體設(shè)置狸膏。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?開篇14章

1、顏色值

在網(wǎng)頁中的顏色設(shè)置是非常重要添怔,有字體顏色(color)湾戳、背景顏色(background-color)、邊框顏色(border)等广料,設(shè)置顏色的方法也有很多種:

1砾脑、英文命令顏色

前面幾個小節(jié)中經(jīng)常用到的就是這種設(shè)置方法:

p{color:red;}

2、RGB顏色

這個與 photoshop 中的 RGB 顏色是一致的艾杏,由 R(red)韧衣、G(green)、B(blue) 三種顏色的比例來配色购桑。

p{color:rgb(133,45,200);}

每一項的值可以是 0~255 之間的整數(shù)畅铭,也可以是 0%~100% 的百分數(shù)。如:

p{color:rgb(20%,33%,25%);}

3其兴、十六進制顏色

這種顏色設(shè)置方法是現(xiàn)在比較普遍使用的方法顶瞒,其原理其實也是 RGB 設(shè)置夸政,但是其每一項的值由 0-255 變成了十六進制 00-ff元旬。

p{color:#00ffff;}

配色表:




2、長度值

長度單位總結(jié)一下守问,目前比較常用到px(像素)匀归、em、% 百分比耗帕,要注意其實這三種單位都是相對單位穆端。

1、像素

像素為什么是相對單位呢仿便?因為像素指的是顯示器上的小點(CSS規(guī)范中假設(shè)“90像素=1英寸”)体啰。實際情況是瀏覽器會使用顯示器的實際像素值有關(guān),在目前大多數(shù)的設(shè)計者都傾向于使用像素(px)作為單位嗽仪。

2荒勇、em

就是本元素給定字體的 font-size 值,如果元素的 font-size 為 14px 闻坚,那么 1em = 14px沽翔;如果 font-size 為 18px,那么 1em = 18px。如下代碼:

p{font-size:12px;text-indent:2em;}

上面代碼就是可以實現(xiàn)段落首行縮進 24px(也就是兩個字體大小的距離)仅偎。

下面注意一個特殊情況:

但當(dāng)給 font-size 設(shè)置單位為?em?時跨蟹,此時計算的標(biāo)準(zhǔn)以 p 的父元素的 font-size 為基礎(chǔ)。如下代碼:

html:

<p>以這個<span>例子</span>為例橘沥。</p>

css:

p{font-size:14px}

span{font-size:0.8em;}

結(jié)果 span 中的字體“例子”字體大小就為 11.2px(14 * 0.8 = 11.2px)窗轩。

3、百分比

p{font-size:12px;line-height:130%}

設(shè)置行高(行間距)為字體的130%(12 * 1.3 = 15.6px)座咆。



? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 開篇15章

1品姓、水平居中設(shè)置-行內(nèi)元素

我們在實際工作中常會遇到需要設(shè)置水平居中的場景,比如為了美觀箫措,文章的標(biāo)題一般都是水平居中顯示的腹备。

這里我們又得分兩種情況:行內(nèi)元素?還是?塊狀元素,塊狀元素里面又分為定寬塊狀元素斤蔓,以及不定寬塊狀元素植酥。今天我們先來了解一下行內(nèi)元素怎么進行水平居中?

如果被設(shè)置元素為文本弦牡、圖片等行內(nèi)元素時友驮,水平居中是通過給父元素設(shè)置text-align:center來實現(xiàn)的。(父元素和子元素:如下面的html代碼中驾锰,div是“我想要在父容器中水平居中顯示”這個文本的父元素卸留。反之這個文本是div的子元素?)如下代碼:

html代碼:

<body>

<div? class="txtCenter">我想要在父容器中水平居中顯示。</div>

</body>

css代碼:

<style>

.txtCenter{

? ? ? ? ? ?text-align:center;

}

</style>


2椭豫、水平居中設(shè)置-定寬塊狀元素

當(dāng)被設(shè)置元素為?塊狀元素?時用 text-align:center 就不起作用了耻瑟,這時也分兩種情況:定寬塊狀元素和不定寬塊狀元素。

這一小節(jié)我們先來講一講定寬塊狀元素赏酥。(定寬塊狀元素:塊狀元素的寬度width為固定值喳整。)

滿足定寬和塊狀兩個條件的元素是可以通過設(shè)置“左右margin”值為“auto”來實現(xiàn)居中的。我們來看個例子就是設(shè)置?div?這個塊狀元素水平居中:

html代碼:

<body>

<div>我是定寬塊狀元素裸扶,哈哈框都,我要水平居中顯示。</div>

</body>

css代碼:

<style>

div{

border:1px solid red;/*為了顯示居中效果明顯為 div 設(shè)置了邊框*/?

width:200px;/*定寬*/

margin:20px auto;/* margin-left 與 margin-right 設(shè)置為 auto */

</style>

也可以寫成:

margin-left:auto;

margin-right:auto;

注意:元素的“上下 margin” 是可以隨意設(shè)置的呵晨。


3魏保、水平居中總結(jié)-不定寬塊狀元素方法(一)

在實際工作中我們會遇到需要為“不定寬度的塊狀元素”設(shè)置居中,比如網(wǎng)頁上的分頁導(dǎo)航摸屠,因為分頁的數(shù)量是不確定的谓罗,所以我們不能通過設(shè)置寬度來限制它的彈性。(不定寬塊狀元素:塊狀元素的寬度width不固定餐塘。)

不定寬度的塊狀元素有三種方法居中(這三種方法目前使用的都很多):

加入?table?標(biāo)簽

設(shè)置display: inline方法:與第一種類似妥衣,顯示類型設(shè)為?行內(nèi)元素,進行不定寬元素的屬性設(shè)置

設(shè)置?position:relative和 left:50%:利用相對定位?的方式,將元素向左偏移50%?税手,即達到居中的目的

這一小節(jié)我們來講一下第一種方法:

為什么選擇方法一加入table標(biāo)簽? 是利用table標(biāo)簽的長度自適應(yīng)性---即不定義其長度也不默認父元素body的長度(table其長度根據(jù)其內(nèi)文本長度決定)蜂筹,因此可以看做一個定寬度塊元素,然后再利用定寬度塊狀居中的margin的方法芦倒,使其水平居中艺挪。

第一步:為需要設(shè)置的居中的元素外面加入一個 table 標(biāo)簽 ( 包括 、兵扬、?)麻裳。

第二步:為這個 table 設(shè)置“左右 margin 居中”(這個和定寬塊狀元素的方法一樣)。

舉例如下:

html代碼:

<div>

<table>

<tbody>

<tr><td>

<ul>

<li>11111</li>

<li>2222>/li>

<li>3333</li>

? ? ? ? ?</ul>

? ? ? ? </tr></td>

? ? ? ? ?</tbody>

? ? ? ? ? </table>

? ? ? ? ?</div>

css代碼:

<style>

table{ border:1px solid;?

?margin:0 auto;

}

</style>


4器钟、水平居中總結(jié)-不定寬塊狀元素方法(二)

除了上一節(jié)講到的插入table標(biāo)簽津坑,可以使不定寬塊狀元素水平居中之外,本節(jié)介紹第2種實現(xiàn)這種效果的方法傲霸,改變元素的display類型為行內(nèi)元素疆瑰,利用其屬性直接設(shè)置。

第二種方法:改變塊級元素的 display 為 inline 類型(設(shè)置為?行內(nèi)元素?顯示)昙啄,然后使用?text-align:center?來實現(xiàn)居中效果穆役。如下例子:

html代碼:

<body>

????<div? ?class="container">

????????<ul>

????????????????<li><a? ?href="#">1</a></li>

????????????????<li><a? href="#">2</a></li>

????????????????<li><a? ?href="#">3</a></li>

????????</ul>????????

????</div>

</body>

CSS代碼:

<style>

????.container{text-align:center;}/*margin:0;padding:0(消除文本與div邊框之間的間隙)*/

????.container ul{ list-style:none; margin:0; padding:0;display:inline;}/* margin-right:8px(設(shè)置li文本之間的間隔)*/

????.container li{ margin-right:8px; display:inline;}

</style>

這種方法相比第一種方法的優(yōu)勢是不用增加無語義標(biāo)簽,但也存在著一些問題:它將塊狀元素的 display 類型改為 inline梳凛,變成了行內(nèi)元素耿币,所以少了一些功能,比如設(shè)定長度值韧拒。


5淹接、水平居中總結(jié)-不定寬塊狀元素方法(三)

除了前兩節(jié)講到的插入table標(biāo)簽,以及改變元素的display類型叭莫,可以使不定寬塊狀元素水平居中之外蹈集,本節(jié)介紹第3種實現(xiàn)這種效果的方法,設(shè)置浮動和相對定位來實現(xiàn)雇初。

方法三:通過給父元素設(shè)置?float,然后給父元素設(shè)置?position:relative?和?left:50%减响,子元素設(shè)置?position:relative?和?left:-50%?來實現(xiàn)水平居中靖诗。

我們可以這樣理解:假想ul層的父層(即下面例子中的div層)中間有條平分線將ul層的父層(div層)平均分為兩份,ul層的css代碼是將ul層的最左端與ul層的父層(div層)的平分線對齊支示;而li層的css代碼則是將li層的平分線與ul層的最左端(也是div層的平分線)對齊刊橘,從而實現(xiàn)li層的居中。

<body>

? ? <div? class="container">

? ????? <ul>

? ? ? ? ? ? ? ? ?<li>? <a? href="#">1</a></li>

? ????????????? <li>? <a? href="#">2</a></li>

? ????????????? <li>? <a? href="#">3</a></li>

????????</ul>

????</div>

</body>

css代碼:

<style>

.container{

? ? float:left;

? ? position:relative;

? ? left:50%}

.container ul{

? ? ? list-style:none;? ??

? ? ? margin:0;? ??

? ? ? padding:0;?

? ? ? position:relative;

? ? ? left:-50%;}

.container li{

? ? ? float:left;

? ? ? display:inline;

? ? ? ?margin-right:8px;}

</style>

這三種方法使用得都非常廣泛颂鸿,各有優(yōu)缺點促绵,具體選用哪種方法,可以視具體情況而定。


6败晴、垂直居中-父元素高度確定的單行文本

我們在實際工作中也會遇到需要設(shè)置垂直居中的場景浓冒,比如好多報紙的文章標(biāo)題在左右一側(cè)時,常常會設(shè)置為垂直居中尖坤,為了用戶體驗性好稳懒。

這里我們又得分兩種情況:父元素高度確定的單行文本,以及父元素高度確定的多行文本慢味。

本節(jié)我們先來看第一種父元素高度確定的單行文本, 怎么設(shè)置它為垂直居中呢场梆?

父元素高度確定的單行文本的豎直居中的方法是通過設(shè)置父元素的height和line-height?高度一致來實現(xiàn)的。(height: 該元素的高度纯路,line-height: 顧名思義或油,行高(行間距),指在文本中驰唬,行與行之間的基線間的距離?)装哆。

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

這種文字行高與塊高一致帶來了一個弊端:當(dāng)文字內(nèi)容的長度大于塊的寬時宵溅,就有內(nèi)容脫離了塊凌简。

如下代碼:

<div? class="container">

? ? hi,imooc!

</div>

CSS代碼:

<style>

????.container{

????????????height:100px;

????????????line-height:100px;

????????????background:#999;

????????????}

</style>


7、垂直居中-父元素高度確定的多行文本(方法一)

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

方法一:使用插入?table??(包括tbody雏搂、tr、td)標(biāo)簽寇损,同時設(shè)置?vertical-align:middle凸郑。

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

html代碼:

<body>

????<table><tbody><tr><td? class="wrap">

????????????<div>

????????????????<p>看我是否可以居中</p>

????????????</div>????????

? ? ? ?</td></tr></tbody></table>

</body>

css代碼:

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

因為?td?標(biāo)簽?zāi)J情況下就默認設(shè)置了?vertical-align?為?middle,所以我們不需要顯式地設(shè)置了浊吏。


8而昨、垂直居中-父元素高度確定的多行文本(方法二)

除了上一節(jié)講到的插入table標(biāo)簽,可以使父元素高度確定的多行文本垂直居中之外找田,本節(jié)介紹另外一種實現(xiàn)這種效果的方法歌憨。但這種方法兼容性比較差,只是提供大家學(xué)習(xí)參考墩衙。

在?chrome务嫡、firefox?及?IE8?以上的瀏覽器下可以設(shè)置塊級元素的?display?為?table-cell(設(shè)置為表格單元顯示)甲抖,激活?vertical-align?屬性,但注意?IE6心铃、7?并不支持這個樣式,?兼容性比較差准谚。

html代碼:

<div? class="container">

? ? <div>

? ? ? ? <p>看我是否可以居中</p>

? ? ? ? <p>看我是否可以居中</p>

? ? ? ? <p>看我是否可以居中</p>

? ? </div>

</div>

CSS代碼:

<style>

.container{?

?height:300px;?

?background:#ccc;?

?display:table-cell;/*IE8以上及Chrome、Firefox*/

vertical-align:middle;/*IE8以上及Chrome于个、Firefox*/

}

</style>

這種方法的好處是不用添加多余的無意義的標(biāo)簽氛魁,但缺點也很明顯,它的兼容性不是很好厅篓,不兼容?IE6秀存、7而且這樣修改display的block變成了table-cell,破壞了原有的塊狀元素的性質(zhì)羽氮。


9或链、隱性改變display類型

有一個有趣的現(xiàn)象就是當(dāng)為元素(不論之前是什么類型元素,display:none?除外)設(shè)置以下?2?個句之一:

1.position : absolute?

2.?float : left 或?float:right

簡單來說档押,只要html代碼中出現(xiàn)以上兩句之一澳盐,元素的display顯示類型就會自動變?yōu)橐?display:inline-block(塊狀元素)的方式顯示,當(dāng)然就可以設(shè)置元素的?width?和?height?了令宿,且默認寬度不占滿父元素叼耙。

如下面的代碼,小伙伴們都知道?a?標(biāo)簽是?行內(nèi)元素?粒没,所以設(shè)置它的width?是 沒有效果的筛婉,但是設(shè)置為?position:absolute?以后,就可以了癞松。

<div? class="container">

? ? <a? href="#"? title="">進入課程請單擊這里</a>

</div>

CSS代碼:

<style>

????.container a{

????????????position:absolute;

????????????width:200px;?

?????????????background:#ccc;

????????????}

</style>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爽撒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子响蓉,更是在濱河造成了極大的恐慌硕勿,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枫甲,死亡現(xiàn)場離奇詭異源武,居然都是意外死亡,警方通過查閱死者的電腦和手機言秸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門软能,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人举畸,你說我怎么就攤上這事〉手Γ” “怎么了抄沮?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵跋核,是天一觀的道長。 經(jīng)常有香客問我叛买,道長砂代,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任率挣,我火速辦了婚禮刻伊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘椒功。我一直安慰自己捶箱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布动漾。 她就那樣靜靜地躺著丁屎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旱眯。 梳的紋絲不亂的頭發(fā)上晨川,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機與錄音删豺,去河邊找鬼共虑。 笑死,一個胖子當(dāng)著我的面吹牛呀页,可吹牛的內(nèi)容都是我干的妈拌。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼赔桌,長吁一口氣:“原來是場噩夢啊……” “哼供炎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起疾党,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤音诫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后雪位,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竭钝,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年雹洗,在試婚紗的時候發(fā)現(xiàn)自己被綠了香罐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡时肿,死狀恐怖庇茫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情螃成,我是刑警寧澤旦签,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布查坪,位于F島的核電站,受9級特大地震影響宁炫,放射性物質(zhì)發(fā)生泄漏偿曙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一羔巢、第九天 我趴在偏房一處隱蔽的房頂上張望望忆。 院中可真熱鬧,春花似錦竿秆、人聲如沸启摄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞋仍。三九已至,卻和暖如春搅吁,著一層夾襖步出監(jiān)牢的瞬間威创,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工谎懦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肚豺,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓界拦,卻偏偏與公主長得像吸申,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子享甸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案截碴? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J的外補...
    _Yfling閱讀 13,762評論 1 92
  • 一 外部式css樣式 (也可稱為外聯(lián)式)就是把css代碼寫一個單獨的外部文件中,這個css樣式文件以“.css...
    KunMitnic閱讀 944評論 0 1
  • 本文主要是起筆記的作用蛉威,內(nèi)容來自慕課網(wǎng). 認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,652評論 0 30
  • CSS格式化排版 1日丹、字體 我們可以使用css樣式為網(wǎng)頁中的文字設(shè)置字體、字號蚯嫌、顏色等樣式屬性哲虾。下面我們來看一個例...
    張文靖同學(xué)閱讀 1,291評論 0 3
  • 2017年11月16日17:43:20 桃花+老頭+座敷+姑獲鳥+大舅=234.9萬傷害 考慮將丑女和追月神加入陣...
    大碩_5132閱讀 213評論 0 0