Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
起之前工作面試時,面試官問的一個問題:行內(nèi)元素有哪些,和塊級元素有什么區(qū)別?這是一道蠻基礎(chǔ)的面試題,但是很多初學(xué)者平時只注重標(biāo)簽語義,忽視了標(biāo)簽行內(nèi)和塊級的特性, 因此對于上述問題很有可能答不上來或者答不全。
HTML常見的行內(nèi)元素有:
<span>、<a>、 <img>、 <input>、<textarea>、<select>、<label>
還有包括一些文本元素如:<br> 、<b>、 <strong>、<sup> 、<sub>、 <i> 、<em> 、<del> 、 <u>等。
要是只回答<span>和<img>那就說不過去了吧。
HTML常見的塊級元素有:
<div>、<table>、<form>、<p>、<ul>、
<h1>......<h6>、<hr> 、<pre>、<address>、<center>、<marquee> 、<blockquote> 等。
要是只回答<div>那就說不過去了吧。
那它們之間的區(qū)別是什么呢?
·塊級元素
1.總是從新的一行開始,即各個塊級元素獨占一行,默認(rèn)垂直向下排列;
2.高度、寬度、margin及padding都是可控的,設(shè)置有效,有邊距效果;
3.寬度沒有設(shè)置時,默認(rèn)為100%;
4.塊級元素中可以包含塊級元素和行內(nèi)元素。
·行內(nèi)元素
1.和其他元素都在一行,即行內(nèi)元素和其他行內(nèi)元素都會在一條水平線上排列;
2.高度、寬度是不可控的,設(shè)置無效,由內(nèi)容決定。
設(shè)置margin左右有效,有邊距效果;
設(shè)置margin上下會撐大空間但是不會產(chǎn)生邊距效果(即盒模型margin-top/bottom有值,但頁面上沒有邊距效果)。
設(shè)置padding左右有效,設(shè)置padding上下會撐大空間但是不會產(chǎn)生邊距效果(同上)。
padding效果如下展示:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<style>
span{
border:1px solid red;
padding:10px;
}
div{
border:1px solid blue;
}
</style>
<body>
<div>塊級元素</div>
<span> 行內(nèi)元素</span>
<span> 行內(nèi)元素</span>
<div>塊級元素</div>
</body>
</html>
3.根據(jù)標(biāo)簽語義化的理念,行內(nèi)元素最好只包含行內(nèi)元素,不包含塊級元素。
轉(zhuǎn)換
當(dāng)然塊級元素與行內(nèi)元素之間的特性是可以相互轉(zhuǎn)換的。HTML可以將元素分為行內(nèi)元素、塊狀元素和行內(nèi)塊狀元素三種。
使用display屬性能夠?qū)⑷呷我廪D(zhuǎn)換:
(1)display:inline;轉(zhuǎn)換為行內(nèi)元素;
(2)display:block;轉(zhuǎn)換為塊狀元素;
(3)display:inline-block;轉(zhuǎn)換為行內(nèi)塊狀元素。
行內(nèi)塊狀元素綜合了行內(nèi)元素和塊狀元素的特性:
(1)不自動換行,與其他行內(nèi)元素都會在一條水平線上排列;
(2)高度、寬度、margin及padding都是可控的,設(shè)置有效,有邊距效果;
(3)默認(rèn)排列方式為從左到右。
常見行內(nèi)塊級元素:
display: inline;
display: block;
display: inline-block;
前不怎么注重基礎(chǔ)知識,自認(rèn)為基礎(chǔ)簡單,一看就會,一學(xué)就懂!可后來才發(fā)現(xiàn),曾經(jīng)的一學(xué)就懂,變成了現(xiàn)在的沒思想,沒思路,代碼無從下手。
嗚呼哀哉,驚嘆道:"基礎(chǔ)乃重中之重“?。?!
——————————————————————————————————
塊級元素:自成一塊,獨占一行,默認(rèn)情況,寬度自動充滿父級寬度!
塊級元素可以設(shè)置寬(width)和高(height)屬性。
值得注意的是塊級元素即使設(shè)置了寬度,仍然是獨占一行。(我是塊級元素,我就是這么霸道)
塊級元素可以設(shè)置margin和padding的屬性。
display:block;與之相對應(yīng)。
常見的HTML元素
行內(nèi)元素相對而言,就比較好說話了。
只要你不專門設(shè)置(display: block || display: inline-block),我就永遠(yuǎn)不會獨占一行;而且,我是行內(nèi)元素,從來不會排斥其他的行內(nèi)元素,只要相鄰,我就會和他們排在同一行里,只要父級寬度夠長,我們就永遠(yuǎn)不會
換行。
行內(nèi)元素的寬(width)和高(height)屬性無效,寬高都是由內(nèi)容區(qū)決定。
display:inline;與之相對應(yīng)。
行內(nèi)元素
行內(nèi)元素做一個變形手術(shù)。就會具有塊級元素的屬性。通過設(shè)置display:block;就會達(dá)到效果。當(dāng)然,也可以具有塊級元素和行內(nèi)元素共同的特性。通過設(shè)置display:inline-block;
常見的行內(nèi)元素:a、b、span、img、input、strong、select、label、em、button
常見的塊級元素: div、p、table、td、tr、ul、li、fieldset、legend!
前端路漫長,更需要我們堅持! 編程夢遙遠(yuǎn),更需要我們努力!漫漫編碼路,我們礪勵前行。只要不放棄,必能建造屬于自己的夢幻王國。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。