摘要:在元素之后添加內(nèi)容控制表單控件的禁用狀態(tài)。生成相對(duì)定位的元素,相對(duì)于其正常位置進(jìn)行定位。由于浮動(dòng)框不在文檔的普通流中,所以文檔的普通流的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。
CSS
display: none; 與 visibility: hidden; 的區(qū)別
聯(lián)系:它們都能讓元素不可見(jiàn)
區(qū)別:
display:none;會(huì)讓元素完全從渲染樹(shù)中消失,渲染的時(shí)候不占據(jù)任何空間;visibility: hidden;不會(huì)讓元素從渲染樹(shù)消失,渲染師元素繼續(xù)占據(jù)空間,只是內(nèi)容不可見(jiàn)
display: none;是非繼承屬性,子孫節(jié)點(diǎn)消失由于元素從渲染樹(shù)消失造成,通過(guò)修改子孫節(jié)點(diǎn)屬性無(wú)法顯示;visibility:hidden;是繼承屬性,子孫節(jié)點(diǎn)消失由于繼承了hidden,通過(guò)設(shè)置visibility: visible;可以讓子孫節(jié)點(diǎn)顯式
修改常規(guī)流中元素的display通常會(huì)造成文檔重排。修改visibility屬性只會(huì)造成本元素的重繪
讀屏器不會(huì)讀取display: none;元素內(nèi)容;會(huì)讀取visibility: hidden元素內(nèi)容
css hack原理及常用hack
原理:利用不同瀏覽器對(duì)CSS的支持和解析結(jié)果不一樣編寫(xiě)針對(duì)特定瀏覽器樣式。
常見(jiàn)的hack有
屬性hack
選擇器hack
IE條件注釋
link 與 @import 的區(qū)別
link 是HTML方式, @import 是CSS方式
link 最大限度支持并行下載, @import 過(guò)多嵌套導(dǎo)致串行下載,出現(xiàn)FOUC
link 可以通過(guò) rel="alternate stylesheet" 指定候選樣式
瀏覽器對(duì) link 支持早于 @import ,可以使用 @import 對(duì)老瀏覽器隱藏樣式
@import 必須在樣式規(guī)則之前,可以在css文件中引用其他文件
總體來(lái)說(shuō):link優(yōu)于@import
CSS有哪些繼承屬性
關(guān)于文字排版的屬性如:
font
word-break
letter-spacing
text-align
text-rendering
word-spacing
white-space
text-indent
text-transform
text-shadow
line-height
color
visibility
cursor
display,float,position的關(guān)系
如果 display 為none,那么position和float都不起作用,這種情況下元素不產(chǎn)生框
否則,如果position值為absolute或者fixed,框就是絕對(duì)定位的,float的計(jì)算值為none,display根據(jù)下面的表格進(jìn)行調(diào)整
否則,如果float不是none,框是浮動(dòng)的,display根據(jù)下表進(jìn)行調(diào)整
否則,如果元素是根元素,display根據(jù)下表進(jìn)行調(diào)整
其他情況下display的值為指定值 總結(jié)起來(lái):絕對(duì)定位、浮動(dòng)、根元素都需要調(diào)整 display
外邊距折疊(collapsing margins)
毗鄰的兩個(gè)或多個(gè) margin 會(huì)合并成一個(gè)margin,叫做外邊距折疊。規(guī)則如下:
兩個(gè)或多個(gè)毗鄰的普通流中的塊元素垂直方向上的margin會(huì)折疊
浮動(dòng)元素或inline-block元素或絕對(duì)定位元素的margin不會(huì)和垂直方向上的其他元素的margin折疊
創(chuàng)建了塊級(jí)格式化上下文的元素,不會(huì)和它的子元素發(fā)生margin折疊
元素自身的margin-bottom和margin-top相鄰時(shí)也會(huì)折
介紹一下標(biāo)準(zhǔn)的CSS的盒子模型?低版本IE的盒子模型有什么不同的?
有兩種, IE 盒子模型、W3C 盒子模型;
盒模型: 內(nèi)容(content)、填充(padding)、邊界(margin)、 邊框(border);
區(qū) 別: IE的content部分把 border 和 padding計(jì)算了進(jìn)去;
CSS選擇符有哪些?哪些屬性可以繼承?
id選擇器( # myid)
類(lèi)選擇器(.myclassname)
標(biāo)簽選擇器(div, h1, p)
相鄰選擇器(h1 + p)
子選擇器(ul > li)
后代選擇器(li a)
通配符選擇器( * )
屬性選擇器(a[rel = "external"])
偽類(lèi)選擇器(a:hover, li:nth-child)
可繼承的樣式: font-size font-family color, UL LI DL DD DT
不可繼承的樣式:border padding margin width height
CSS優(yōu)先級(jí)算法如何計(jì)算?
優(yōu)先級(jí)就近原則,同權(quán)重情況下樣式定義最近者為準(zhǔn)
載入樣式以最后載入的定位為準(zhǔn)
優(yōu)先級(jí)為: !important > id > class > tag important 比 內(nèi)聯(lián)優(yōu)先級(jí)高
CSS3新增偽類(lèi)有那些?
p:first-of-type 選擇屬于其父元素的首個(gè)元素的每個(gè)
元素。 p:last-of-type 選擇屬于其父元素的最后
元素的每個(gè)
元素。 p:only-of-type 選擇屬于其父元素唯一的
元素的每個(gè)
元素。 p:only-child 選擇屬于其父元素的唯一子元素的每個(gè)
元素。 p:nth-child(2) 選擇屬于其父元素的第二個(gè)子元素的每個(gè)
元素。 :after 在元素之前添加內(nèi)容,也可以用來(lái)做清除浮動(dòng)。 :before 在元素之后添加內(nèi)容 :enabled :disabled 控制表單控件的禁用狀態(tài)。 :checked 單選框或復(fù)選框被選中
如何居中div?如何居中一個(gè)浮動(dòng)元素?如何讓絕對(duì)定位的div居中?
給div設(shè)置一個(gè)寬度,然后添加margin:0 auto屬性
div{ width:200px; margin:0 auto; }
居中一個(gè)浮動(dòng)元素
//確定容器的寬高 寬500 高 300 的層 //設(shè)置層的外邊距 .div { width:500px ; height:300px;//高度可以不設(shè) margin: -150px 0 0 -250px; position:relative; //相對(duì)定位 background-color:pink; //方便看效果 left:50%; top:50%; }
讓絕對(duì)定位的div居中
position: absolute; width: 1200px; background: none; margin: 0 auto; top: 0; left: 0; bottom: 0; right: 0;
display有哪些值?說(shuō)明他們的作用
block 象塊類(lèi)型元素一樣顯示。
none 缺省值。象行內(nèi)元素類(lèi)型一樣顯示。
inline-block 象行內(nèi)元素一樣顯示,但其內(nèi)容象塊類(lèi)型元素一樣顯示。
list-item 象塊類(lèi)型元素一樣顯示,并添加樣式列表標(biāo)記。
table 此元素會(huì)作為塊級(jí)表格來(lái)顯示
inherit 規(guī)定應(yīng)該從父元素繼承 display 屬性的值
position的值relative和absolute定位原點(diǎn)是?
absolute
生成絕對(duì)定位的元素,相對(duì)于值不為 static的第一個(gè)父元素進(jìn)行定位。
fixed (老IE不支持)
生成絕對(duì)定位的元素,相對(duì)于瀏覽器窗口進(jìn)行定位。
relative
生成相對(duì)定位的元素,相對(duì)于其正常位置進(jìn)行定位。
static
默認(rèn)值。沒(méi)有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right - z-index 聲明)。
inherit
規(guī)定從父元素繼承 position 屬性的值
CSS3有哪些新特性?
新增各種CSS選擇器 (: not(.input):所有 class 不是“input”的節(jié)點(diǎn))
圓角 (border-radius:8px)
多列布局 (multi-column layout)
陰影和反射 (ShadowReflect)
文字特效 (text-shadow、)
文字渲染 (Text-decoration)
線性漸變 (gradient)
旋轉(zhuǎn) (transform)
增加了旋轉(zhuǎn),縮放,定位,傾斜,動(dòng)畫(huà),多背景
transform:scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg)Animation:
用純CSS創(chuàng)建一個(gè)三角形的原理是什么?
// 把上、左、右三條邊隱藏掉(顏色設(shè)為 transparent) #demo { width: 0; height: 0; border-width: 20px; border-style: solid; border-color: transparent transparent red transparent; }
一個(gè)滿(mǎn)屏 品 字布局 如何設(shè)計(jì)?
簡(jiǎn)單的方式:
上面的div寬100%,
下面的兩個(gè)div分別寬50%,
然后用float或者inline使其不換行即可
經(jīng)常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什么,常用hack的技巧 ?
png24位的圖片在iE6瀏覽器上出現(xiàn)背景,解決方案是做成PNG8.
瀏覽器默認(rèn)的margin和padding不同。解決方案是加一個(gè)全局的*{margin:0;padding:0;}來(lái)統(tǒng)一
IE下,可以使用獲取常規(guī)屬性的方法來(lái)獲取自定義屬性,也可以使用getAttribute()獲取自定義屬性;
Firefox下,只能使用getAttribute()獲取自定義屬性。
解決方法:統(tǒng)一通過(guò)getAttribute()獲取自定義屬性
IE下,even對(duì)象有x,y屬性,但是沒(méi)有pageX,pageY屬性
Firefox下,event對(duì)象有pageX,pageY屬性,但是沒(méi)有x,y屬性
li與li之間有看不見(jiàn)的空白間隔是什么原因引起的?有什么解決辦法?
行框的排列會(huì)受到中間空白(回車(chē)空格)等的影響,因?yàn)榭崭褚矊儆谧址?這些空白也會(huì)被應(yīng)用樣式,占據(jù)空間,所以會(huì)有間隔,把字符大小設(shè)為0,就沒(méi)有空格了
為什么要初始化CSS樣式
因?yàn)闉g覽器的兼容問(wèn)題,不同瀏覽器對(duì)有些標(biāo)簽的默認(rèn)值是不同的,如果沒(méi)對(duì)CSS初始化往往會(huì)出現(xiàn)瀏覽器之間的頁(yè)面顯示差異
對(duì)BFC規(guī)范(塊級(jí)格式化上下文:block formatting context)的理解?
一個(gè)頁(yè)面是由很多個(gè) Box 組成的,元素的類(lèi)型和 display 屬性,決定了這個(gè) Box 的類(lèi)型
不同類(lèi)型的 Box,會(huì)參與不同的 Formatting Context(決定如何渲染文檔的容器),因此Box內(nèi)的元素會(huì)以不同的方式渲染,也就是說(shuō)BFC內(nèi)部的元素和外部的元素不會(huì)互相影響
display:inline-block 什么時(shí)候會(huì)顯示間隙?(攜程)
移除空格、使用margin負(fù)值、使用font-size:0、letter-spacing、word-spacing
談?wù)劯?dòng)和清除浮動(dòng)
浮動(dòng)的框可以向左或向右移動(dòng),直到他的外邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊框?yàn)橹埂S捎诟?dòng)框不在文檔的普通流中,所以文檔的普通流的塊框表現(xiàn)得就像浮動(dòng)框不存在一樣。浮動(dòng)的塊框會(huì)漂浮在文檔普通流的塊框上
介紹一下標(biāo)準(zhǔn)的CSS的盒子模型?低版本IE的盒子模型有什么不同的?
盒子模型構(gòu)成:內(nèi)容(content)、內(nèi)填充(padding)、 邊框(border)、外邊距(margin)
IE8及其以下版本瀏覽器,未聲明 DOCTYPE,內(nèi)容寬高會(huì)包含內(nèi)填充和邊框,稱(chēng)為怪異盒模型(IE盒模型)
標(biāo)準(zhǔn)(W3C)盒模型:元素寬度 = width + padding + border + margin
怪異(IE)盒模型:元素寬度 = width + margin
標(biāo)準(zhǔn)瀏覽器通過(guò)設(shè)置 css3 的 box-sizing: border-box 屬性,觸發(fā)“怪異模式”解析計(jì)算寬高
box-sizing 常用的屬性有哪些?分別有什么作用?
box-sizing: content-box; // 默認(rèn)的標(biāo)準(zhǔn)(W3C)盒模型元素效果
box-sizing: border-box; // 觸發(fā)怪異(IE)盒模型元素的效果
box-sizing: inherit; // 繼承父元素 box-sizing 屬性的值
CSS選擇器有哪些?
id選擇器 #id
類(lèi)選擇器 .class
標(biāo)簽選擇器 div, h1, p
相鄰選擇器 h1 + p
子選擇器 ul > li
后代選擇器 li a
通配符選擇器 *
屬性選擇器 a[rel="external"]
偽類(lèi)選擇器 a:hover, li:nth-child
CSS哪些屬性可以繼承?哪些屬性不可以繼承?
可以繼承的樣式:font-size、font-family、color、list-style、cursor
不可繼承的樣式:width、height、border、padding、margin、background
CSS如何計(jì)算選擇器優(yōu)先?
相同權(quán)重,定義最近者為準(zhǔn):行內(nèi)樣式 > 內(nèi)部樣式 > 外部樣式
含外部載入樣式時(shí),后載入樣式覆蓋其前面的載入的樣式和內(nèi)部樣式
選擇器優(yōu)先級(jí): 行內(nèi)樣式[1000] > id[100] > class[10] > Tag[1]
在同一組屬性設(shè)置中,!important 優(yōu)先級(jí)最高,高于行內(nèi)樣式
CSS3新增偽類(lèi)有哪些?
:root 選擇文檔的根元素,等同于 html 元素
:empty 選擇沒(méi)有子元素的元素
:target 選取當(dāng)前活動(dòng)的目標(biāo)元素
:not(selector) 選擇除 selector 元素意外的元素
:enabled 選擇可用的表單元素
:disabled 選擇禁用的表單元素
:checked 選擇被選中的表單元素
:after 在元素內(nèi)部最前添加內(nèi)容
:before 在元素內(nèi)部最后添加內(nèi)容
:nth-child(n) 匹配父元素下指定子元素,在所有子元素中排序第n
:nth-last-child(n) 匹配父元素下指定子元素,在所有子元素中排序第n,從后向前數(shù)
:nth-child(odd)
:nth-child(even)
:nth-child(3n+1)
:first-child
:last-child
:only-child
:nth-of-type(n) 匹配父元素下指定子元素,在同類(lèi)子元素中排序第n
:nth-last-of-type(n) 匹配父元素下指定子元素,在同類(lèi)子元素中排序第n,從后向前數(shù)
:nth-of-type(odd)
:nth-of-type(even)
:nth-of-type(3n+1)
:first-of-type
:last-of-type
:only-of-type
::selection 選擇被用戶(hù)選取的元素部分
:first-line 選擇元素中的第一行
:first-letter 選擇元素中的第一個(gè)字符
請(qǐng)列舉幾種隱藏元素的方法
visibility: hidden; 這個(gè)屬性只是簡(jiǎn)單的隱藏某個(gè)元素,但是元素占用的空間任然存在
opacity: 0; CSS3屬性,設(shè)置0可以使一個(gè)元素完全透明
position: absolute; 設(shè)置一個(gè)很大的 left 負(fù)值定位,使元素定位在可見(jiàn)區(qū)域之外
display: none; 元素會(huì)變得不可見(jiàn),并且不會(huì)再占用文檔的空間。
transform: scale(0); 將一個(gè)元素設(shè)置為縮放無(wú)限小,元素將不可見(jiàn),元素原來(lái)所在的位置將被保留
height: 0; 將元素高度設(shè)為 0 ,并消除邊框 filter: blur(0); CSS3屬性,將一個(gè)元素的模糊度設(shè)置為0,從而使這個(gè)元素“消失”在頁(yè)面中 rgba() 和 opacity 的透明效果有什么不同? opacity 作用于元素以及元素內(nèi)的所有內(nèi)容(包括文字)的透明度 rgba() 只作用于元素自身的顏色或其背景色,子元素不會(huì)繼承透明效果 css 屬性 content 有什么作用? content 屬性專(zhuān)門(mén)應(yīng)用在 before/after 偽元素上,用于插入額外內(nèi)容或樣式 CSS3有哪些新特性? 新增選擇器 p:nth-child(n){color: rgba(255, 0, 0, 0.75)} 彈性盒模型 display: flex; 多列布局 column-count: 5; 媒體查詢(xún) @media (max-width: 480px) {.box: {column-count: 1;}} 個(gè)性化字體 @font-face{font-family: BorderWeb; src:url(BORDERW0.eot);} 顏色透明度 color: rgba(255, 0, 0, 0.75); 圓角 border-radius: 5px; 漸變 background:linear-gradient(red, green, blue); 陰影 box-shadow:3px 3px 3px rgba(0, 64, 128, 0.3); 倒影 box-reflect: below 2px; 文字裝飾 text-stroke-color: red; 文字溢出 text-overflow:ellipsis; 背景效果 background-size: 100px 100px; 邊框效果 border-image:url(bt_blue.png) 0 10;
轉(zhuǎn)換 旋轉(zhuǎn) transform: rotate(20deg); 傾斜 transform: skew(150deg, -10deg); 位移 transform: translate(20px, 20px); 縮放 transform: scale(.5); 平滑過(guò)渡 transition: all .3s ease-in .1s; 動(dòng)畫(huà) @keyframes anim-1 {50% {border-radius: 50%;}} animation: anim-1 1s; 請(qǐng)解釋一下 CSS3 的 Flexbox(彈性盒布局模型)以及適用場(chǎng)景? Flexbox 用于不同尺寸屏幕中創(chuàng)建可自動(dòng)擴(kuò)展和收縮布局 經(jīng)常遇到的瀏覽器的JS兼容性有哪些?解決方法是什么? 當(dāng)前樣式:getComputedStyle(el, null) VS el.currentStyle 事件對(duì)象:e VS window.event 鼠標(biāo)坐標(biāo):e.pageX, e.pageY VS window.event.x, window.event.y 按鍵碼:e.which VS event.keyCode 文本節(jié)點(diǎn):el.textContent VS el.innerText li與li之間有看不見(jiàn)的空白間隔是什么原因引起的?有什么解決辦法? li排列受到中間空白(回車(chē)/空格)等的影響,因?yàn)榭瞻滓矊儆谧址瑫?huì)被應(yīng)用樣式占據(jù)空間,產(chǎn)生間隔 解決辦法:在ul設(shè)置設(shè)置font-size=0,在li上設(shè)置需要的文字大小 什么是外邊距重疊? 重疊的結(jié)果是什么? 外邊距重疊就是 margin-collapse 相鄰的兩個(gè)盒子(可能是兄弟關(guān)系也可能是祖先關(guān)系)的外邊距可以結(jié)合成一個(gè)多帶帶的外邊距。 這種合并外邊距的方式被稱(chēng)為折疊,結(jié)合而成的外邊距稱(chēng)為折疊外邊距
折疊結(jié)果遵循下列計(jì)算規(guī)則: 兩個(gè)相鄰的外邊距都是正數(shù)時(shí),折疊結(jié)果是它們兩者之間較大的值 兩個(gè)相鄰的外邊距都是負(fù)數(shù)時(shí),折疊結(jié)果是兩者絕對(duì)值的較大值 兩個(gè)外邊距一正一負(fù)時(shí),折疊結(jié)果是兩者的相加的和 請(qǐng)寫(xiě)出多種等高布局 在列的父元素上使用這個(gè)背景圖進(jìn)行Y軸的鋪放,從而實(shí)現(xiàn)一種等高列的假像 模仿表格布局等高列效果:兼容性不好,在ie6-7無(wú)法正常運(yùn)行 css3 flexbox 布局: .container{display: flex; align-items: stretch;} css垂直居中的方法有哪些? 如果是單行文本, line-height 設(shè)置成和 height 值 已知高度的塊級(jí)子元素,采用絕對(duì)定位和負(fù)邊距 未知高度的塊級(jí)父子元素居中,模擬表格布局 缺點(diǎn):IE67不兼容,父級(jí) overflow:hidden 失效
新增 inline-block 兄弟元素,設(shè)置 vertical-align 缺點(diǎn):需要增加額外標(biāo)簽,IE67不兼容 絕對(duì)定位配合 CSS3 位移 CSS3彈性盒模型 圣杯布局的實(shí)現(xiàn)原理?
要求:三列布局;中間主體內(nèi)容前置,且寬度自適應(yīng);兩邊內(nèi)容定寬 好處:重要的內(nèi)容放在文檔流前面可以?xún)?yōu)先渲染 原理:利用相對(duì)定位、浮動(dòng)、負(fù)邊距布局,而不添加額外標(biāo)簽 什么是雙飛翼布局?實(shí)現(xiàn)原理? 雙飛翼布局:對(duì)圣杯布局(使用相對(duì)定位,對(duì)以后布局有局限性)的改進(jìn),消除相對(duì)定位布局 原理:主體元素上設(shè)置左右邊距,預(yù)留兩翼位置。左右兩欄使用浮動(dòng)和負(fù)邊距歸位,消除相對(duì)定位。 為什么要初始化CSS樣式? 不同瀏覽器對(duì)有些標(biāo)簽樣式的默認(rèn)值解析不同 不初始化CSS會(huì)造成各現(xiàn)瀏覽器之間的頁(yè)面顯示差異 可以使用 reset.css 或 Normalize.css 做 CSS 初始化 解釋下什么是浮動(dòng)和它的工作原理? 非IE瀏覽器下,容器不設(shè)高度且子元素浮動(dòng)時(shí),容器高度不能被內(nèi)容撐開(kāi)。 此時(shí),內(nèi)容會(huì)溢出到容器外面而影響布局。這種現(xiàn)象被稱(chēng)為浮動(dòng)(溢出)。
工作原理: 浮動(dòng)元素脫離文檔流,不占據(jù)空間(引起“高度塌陷”現(xiàn)象) 浮動(dòng)元素碰到包含它的邊框或者其他浮動(dòng)元素的邊框停留 浮動(dòng)元素引起的問(wèn)題? 父元素的高度無(wú)法被撐開(kāi),影響與父元素同級(jí)的元素 與浮動(dòng)元素同級(jí)的非浮動(dòng)元素會(huì)跟隨其后 列舉幾種清除浮動(dòng)的方式? 添加額外標(biāo)簽,例如
使用 br 標(biāo)簽和其自身的 clear 屬性,例如 父元素設(shè)置 overflow:hidden; 在IE6中還需要觸發(fā) hasLayout,例如zoom:1; 父元素也設(shè)置浮動(dòng) 使用 :after 偽元素。由于IE6-7不支持 :after,使用 zoom:1 觸發(fā) hasLayout 清除浮動(dòng)最佳實(shí)踐(after偽元素閉合浮動(dòng)): 什么是 FOUC(Flash of Unstyled Content)? 如何來(lái)避免 FOUC? 當(dāng)使用 @import 導(dǎo)入 CSS 時(shí),會(huì)導(dǎo)致某些頁(yè)面在 IE 出現(xiàn)奇怪的現(xiàn)象: 沒(méi)有樣式的頁(yè)面內(nèi)容顯示瞬間閃爍,這種現(xiàn)象稱(chēng)為“文檔樣式短暫失效”,簡(jiǎn)稱(chēng)為FOUC 產(chǎn)生原因:當(dāng)樣式表晚于結(jié)構(gòu)性html加載時(shí),加載到此樣式表時(shí),頁(yè)面將停止之前的渲染。 等待此樣式表被下載和解析后,再重新渲染頁(yè)面,期間導(dǎo)致短暫的花屏現(xiàn)象。 解決方法:使用 link 標(biāo)簽將樣式表放在文檔 head 介紹使用過(guò)的 CSS 預(yù)處理器? CSS 預(yù)處理器基本思想:為 CSS 增加了一些編程的特性(變量、邏輯判斷、函數(shù)等) 開(kāi)發(fā)者使用這種語(yǔ)言進(jìn)行進(jìn)行 Web 頁(yè)面樣式設(shè)計(jì),再編譯成正常的 CSS 文件使用 使用 CSS 預(yù)處理器,可以使 CSS 更加簡(jiǎn)潔、適應(yīng)性更強(qiáng)、可讀性更佳,無(wú)需考慮兼容性 最常用的 CSS 預(yù)處理器語(yǔ)言包括:Sass(SCSS)和 LESS CSS優(yōu)化、提高性能的方法有哪些? 多個(gè)css合并,盡量減少HTTP請(qǐng)求 將css文件放在頁(yè)面最上面 移除空的css規(guī)則 避免使用CSS表達(dá)式 選擇器優(yōu)化嵌套,盡量避免層級(jí)過(guò)深 充分利用css繼承屬性,減少代碼量 抽象提取公共樣式,減少代碼量 屬性值為0時(shí),不加單位 屬性值為小于1的小數(shù)時(shí),省略小數(shù)點(diǎn)前面的0 css雪碧圖 瀏覽器是怎樣解析CSS選擇器的? 瀏覽器解析 CSS 選擇器的方式是從右到左 在網(wǎng)頁(yè)中的應(yīng)該使用奇數(shù)還是偶數(shù)的字體?
在網(wǎng)頁(yè)中的應(yīng)該使用“偶數(shù)”字體: 偶數(shù)字號(hào)相對(duì)更容易和 web 設(shè)計(jì)的其他部分構(gòu)成比例關(guān)系 使用奇數(shù)號(hào)字體時(shí)文本段落無(wú)法對(duì)齊 宋體的中文網(wǎng)頁(yè)排布中使用最多的就是 12 和 14 margin和padding分別適合什么場(chǎng)景使用? 需要在border外側(cè)添加空白,且空白處不需要背景(色)時(shí),使用 margin 需要在border內(nèi)測(cè)添加空白,且空白處需要背景(色)時(shí),使用 padding 抽離樣式模塊怎么寫(xiě),說(shuō)出思路?
CSS可以拆分成2部分:公共CSS 和 業(yè)務(wù)CSS: 網(wǎng)站的配色,字體,交互提取出為公共CSS。這部分CSS命名不應(yīng)涉及具體的業(yè)務(wù) 對(duì)于業(yè)務(wù)CSS,需要有統(tǒng)一的命名,使用公用的前綴。可以參考面向?qū)ο蟮腃SS 元素豎向的百分比設(shè)定是相對(duì)于容器的高度嗎? 元素豎向的百分比設(shè)定是相對(duì)于容器的寬度,而不是高度 全屏滾動(dòng)的原理是什么? 用到了CSS的那些屬性? 原理類(lèi)似圖片輪播原理,超出隱藏部分,滾動(dòng)時(shí)顯示 可能用到的CSS屬性:overflow:hidden; transform:translate(100%, 100%); display:none; 什么是響應(yīng)式設(shè)計(jì)?響應(yīng)式設(shè)計(jì)的基本原理是什么?如何兼容低版本的IE? 響應(yīng)式設(shè)計(jì)就是網(wǎng)站能夠兼容多個(gè)終端,而不是為每個(gè)終端做一個(gè)特定的版本 基本原理是利用CSS3媒體查詢(xún),為不同尺寸的設(shè)備適配不同樣式 對(duì)于低版本的IE,可采用JS獲取屏幕寬度,然后通過(guò)resize方法來(lái)實(shí)現(xiàn)兼容: 什么是視差滾動(dòng)效果,如何給每頁(yè)做不同的動(dòng)畫(huà)?
視差滾動(dòng)是指多層背景以不同的速度移動(dòng),形成立體的運(yùn)動(dòng)效果,具有非常出色的視覺(jué)體驗(yàn) 一般把網(wǎng)頁(yè)解剖為:背景層、內(nèi)容層和懸浮層。當(dāng)滾動(dòng)鼠標(biāo)滾輪時(shí),各圖層以不同速度移動(dòng),形成視差的
實(shí)現(xiàn)原理 以 “頁(yè)面滾動(dòng)條” 作為 “視差動(dòng)畫(huà)進(jìn)度條” 以 “滾輪刻度” 當(dāng)作 “動(dòng)畫(huà)幀度” 去播放動(dòng)畫(huà)的 監(jiān)聽(tīng) mousewheel 事件,事件被觸發(fā)即播放動(dòng)畫(huà),實(shí)現(xiàn)“翻頁(yè)”效果 a標(biāo)簽上四個(gè)偽類(lèi)的執(zhí)行順序是怎么樣的 L-V-H-A love hate 用喜歡和討厭兩個(gè)詞來(lái)方便記憶 偽元素和偽類(lèi)的區(qū)別和作用? 偽元素 -- 在內(nèi)容元素的前后插入額外的元素或樣式,但是這些元素實(shí)際上并不在文檔中生成。 它們只在外部顯示可見(jiàn),但不會(huì)在文檔的源代碼中找到它們,因此,稱(chēng)為“偽”元素。例如: 偽類(lèi) -- 將特殊的效果添加到特定選擇器上。它是已有元素上添加類(lèi)別的,不會(huì)產(chǎn)生新的元素。例如: ::before 和 :after 中雙冒號(hào)和單冒號(hào)有什么區(qū)別? 在 CSS 中偽類(lèi)一直用 : 表示,如 :hover, :active 等 偽元素在CSS1中已存在,當(dāng)時(shí)語(yǔ)法是用 : 表示,如 :before 和 :after 后來(lái)在CSS3中修訂,偽元素用 :: 表示,如 ::before 和 ::after,以此區(qū)分偽元素和偽類(lèi) 由于低版本IE對(duì)雙冒號(hào)不兼容,開(kāi)發(fā)者為了兼容性各瀏覽器,繼續(xù)使使用 :after 這種老語(yǔ)法表示偽元素 綜上所述:::before 是 CSS3 中寫(xiě)偽元素的新語(yǔ)法; :after 是 CSS1 中存在的、兼容IE的老語(yǔ)法 如何修改Chrome記住密碼后自動(dòng)填充表單的黃色背景? 產(chǎn)生原因:由于Chrome默認(rèn)會(huì)給自動(dòng)填充的input表單加上 input:-webkit-autofill 私有屬性造成的 解決方案1:在form標(biāo)簽上直接關(guān)閉了表單的自動(dòng)填充:autocomplete="off" 解決方案2:input:-webkit-autofill { background-color: transparent; } input [type=search] 搜索框右側(cè)小圖標(biāo)如何美化? 網(wǎng)站圖片文件,如何點(diǎn)擊下載?而非點(diǎn)擊預(yù)覽? iOS safari 如何阻止“橡皮筋效果”? 你對(duì) line-height 是如何理解的? line-height 指一行字的高度,包含了字間距,實(shí)際上是下一行基線到上一行基線距離 如果一個(gè)標(biāo)簽沒(méi)有定義 height 屬性,那么其最終表現(xiàn)的高度是由 line-height 決定的 一個(gè)容器沒(méi)有設(shè)置高度,那么撐開(kāi)容器高度的是 line-height 而不是容器內(nèi)的文字內(nèi)容 把 line-height 值設(shè)置為 height 一樣大小的值可以實(shí)現(xiàn)單行文字的垂直居中 line-height 和 height 都能撐開(kāi)一個(gè)高度,height 會(huì)觸發(fā) haslayout,而 line-height 不會(huì) line-height 三種賦值方式有何區(qū)別?(帶單位、純數(shù)字、百分比) 帶單位:px 是固定值,而 em 會(huì)參考父元素 font-size 值計(jì)算自身的行高 純數(shù)字:會(huì)把比例傳遞給后代。例如,父級(jí)行高為 1.5,子元素字體為 18px,則子元素行高為 1.5 * 18 = 27px 百分比:將計(jì)算后的值傳遞給后代 設(shè)置元素浮動(dòng)后,該元素的 display 值會(huì)如何變化? 設(shè)置元素浮動(dòng)后,該元素的 display 值自動(dòng)變成 block 怎么讓Chrome支持小于12px 的文字? 讓頁(yè)面里的字體變清晰,變細(xì)用CSS怎么做?(IOS手機(jī)瀏覽器字體齒輪設(shè)置) font-style 屬性 oblique 是什么意思? font-style: oblique; 使沒(méi)有 italic 屬性的文字實(shí)現(xiàn)傾斜 如果需要手動(dòng)寫(xiě)動(dòng)畫(huà),你認(rèn)為最小時(shí)間間隔是多久? 16.7ms 多數(shù)顯示器默認(rèn)頻率是60Hz,即1秒刷新60次,所以理論上最小間隔: 1s / 60 * 1000 = 16.7ms display:inline-block 什么時(shí)候會(huì)顯示間隙? 相鄰的 inline-block 元素之間有換行或空格分隔的情況下會(huì)產(chǎn)生間距 非 inline-block 水平元素設(shè)置為 inline-block 也會(huì)有水平間距 可以借助 vertical-align:top; 消除垂直間隙 可以在父級(jí)加 font-size:0; 在子元素里設(shè)置需要的字體大小,消除垂直間隙 把 li 標(biāo)簽寫(xiě)到同一行可以消除垂直間隙,但代碼可讀性差 overflow: scroll 時(shí)不能平滑滾動(dòng)的問(wèn)題怎么處理? 監(jiān)聽(tīng)滾輪事件,然后滾動(dòng)到一定距離時(shí)用 jquery 的 animate 實(shí)現(xiàn)平滑效果。 一個(gè)高度自適應(yīng)的div,里面有兩個(gè)div,一個(gè)高度100px,希望另一個(gè)填滿(mǎn)剩下的高度 方案1: 方案2: 方案3: 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。 轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/115964.html.vertical {
height: 100px;
line-height: 100px;
}
.container {
position: relative;
}
.vertical {
height: 300px; /*子元素高度*/
position: absolute;
top:50%; /*父元素高度50%*/
margin-top: -150px; /*自身高度一半*/
}
.container {
display: table;
}
.content {
display: table-cell;
vertical-align: middle;
}
.container {
height: 100%;/*定義父級(jí)高度,作為參考*/
}
.extra .vertical{
display: inline-block; /*行內(nèi)塊顯示*/
vertical-align: middle; /*垂直居中*/
}
.extra {
height: 100%; /*設(shè)置新增元素高度為100%*/
}
.vertical {
position: absolute;
top:50%; /*父元素高度50%*/
transform:translateY(-50%, -50%);
}
.container {
display:flex;
justify-content: center; /*子元素水平居中*/
align-items: center; /*子元素垂直居中*/
}
.container {
padding-left: 150px;
padding-right: 190px;
}
.main {
float: left;
width: 100%;
}
.left {
float: left;
width: 190px;
margin-left: -100%;
position: relative;
left: -150px;
}
.right {
float: left;
width: 190px;
margin-left: -190px;
position: relative;
right: -190px;
}
.container {
/*padding-left:150px;*/
/*padding-right:190px;*/
}
.main-wrap {
width: 100%;
float: left;
}
.main {
margin-left: 150px;
margin-right: 190px;
}
.left {
float: left;
width: 150px;
margin-left: -100%;
/*position: relative;*/
/*left:-150px;*/
}
.right {
float: left;
width: 190px;
margin-left: -190px;
/*position:relative;*/
/*right:-190px;*/
}
.clearfix:after{
content: "200B";
display: table;
height: 0;
clear: both;
}
.clearfix{
*zoom: 1;
}
$(window).resize(function () {
screenRespond();
});
screenRespond();
function screenRespond(){
var screenWidth = $(window).width();
if(screenWidth <= 1800){
$("body").attr("class", "w1800");
}
if(screenWidth <= 1400){
$("body").attr("class", "w1400");
}
if(screenWidth > 1800){
$("body").attr("class", "");
}
}
link > visited > hover > active
p::before {content:"第一章:";}
p::after {content:"Hot!";}
p::first-line {background:red;}
p::first-letter {font-size:30px;}
a:hover {color: #FF00FF}
p:first-child {color: red}
input[type="search"]::-webkit-search-cancel-button{
-webkit-appearance: none;
height: 15px;
width: 15px;
border-radius: 8px;
background:url("images/searchicon.png") no-repeat 0 0;
background-size: 15px 15px;
}
$(document).ready(function(){
var stopScrolling = function(event) {
event.preventDefault();
}
document.addEventListener("touchstart", stopScrolling, false);
document.addEventListener("touchmove", stopScrolling, false);
});
.shrink{
-webkit-transform:scale(0.8);
-o-transform:scale(1);
display:inline-block;
}
-webkit-font-smoothing: antialiased;
.sub { height: calc(100%-100px); }
.container { position:relative; }
.sub { position: absolute; top: 100px; bottom: 0; }
.container { display:flex; flex-direction:column; }
.sub { flex:1; }
摘要:黑體本系列講解安全所需要的和黑體安全基礎(chǔ)我的第一個(gè)網(wǎng)頁(yè)黑體安全基礎(chǔ)初識(shí)黑體安全基礎(chǔ)初識(shí)標(biāo)簽黑體安全基礎(chǔ)文件夾管理網(wǎng)站黑體安全基礎(chǔ)模塊化黑體安全基礎(chǔ)嵌套列表黑體安全基礎(chǔ)標(biāo)簽拓展和屬性的使用黑體安全基礎(chǔ)嵌套本系列講解WEB安全所需要的HTML和CSS #WEB安全基礎(chǔ) : HTML/CSS | 0x0 我的第一個(gè)網(wǎng)頁(yè) #WEB安全基礎(chǔ) : HTML/CSS | 0x1初識(shí)CSS #WEB安全基...
摘要:現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充關(guān)于那些事四之基于構(gòu)架基礎(chǔ)樣式庫(kù)基礎(chǔ)庫(kù)構(gòu)思為什么要做基礎(chǔ)庫(kù)我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義樣式來(lái)滿(mǎn)足自己的需求。 前言 先來(lái)回顧一下前幾章節(jié),我們都說(shuō)了哪些內(nèi)容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...
摘要:現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充關(guān)于那些事四之基于構(gòu)架基礎(chǔ)樣式庫(kù)基礎(chǔ)庫(kù)構(gòu)思為什么要做基礎(chǔ)庫(kù)我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義樣式來(lái)滿(mǎn)足自己的需求。 前言 先來(lái)回顧一下前幾章節(jié),我們都說(shuō)了哪些內(nèi)容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...
摘要:上面五個(gè)問(wèn)題就是我總結(jié)的基礎(chǔ)概念,學(xué)習(xí)過(guò)程中一定要把它們弄明白別忘了有哦。 請(qǐng)帶著以下幾個(gè)問(wèn)題進(jìn)行學(xué)習(xí) CSS是什么 CSS的引用方式 CSS選擇器 CSS優(yōu)先級(jí) CSS盒模型 基礎(chǔ)知識(shí)學(xué)習(xí)和實(shí)例演練教程 MDN中css教程CSS基礎(chǔ)學(xué)習(xí)教程(css快速入門(mén))CSS參考手冊(cè)(便于了解更多css屬性)CSS3教程(適用于移動(dòng)端開(kāi)發(fā)的css新特性) 入門(mén)學(xué)習(xí),一定要快,沒(méi)有必要花大量時(shí)...
摘要:派生選擇器依據(jù)元素的位置關(guān)系來(lái)定義樣式。稱(chēng)其為上下文選擇器,稱(chēng)其為派生選擇器。在現(xiàn)在布局中,選擇器常常用于建立派生選擇器。和一樣,也可被用作派生選擇器。 文章大綱來(lái)源:【Day 3】HTML復(fù)習(xí) + CSS基礎(chǔ) 初識(shí)CSS 入門(mén)CSS 初識(shí)CSS 層疊樣式表(Cascading Style Sheets),即前端常說(shuō)的CSS。 內(nèi)容引用:CSS 簡(jiǎn)介 樣式解決了什么問(wèn)題? HTML...
閱讀 2659·2021-09-09 09:33
閱讀 2813·2019-08-30 15:54
閱讀 2873·2019-08-30 14:21
閱讀 2361·2019-08-29 17:15
閱讀 3585·2019-08-29 16:13
閱讀 2764·2019-08-29 14:21
閱讀 3431·2019-08-26 13:25
閱讀 2033·2019-08-26 12:14