Mastering CSS

This is going to be a recap of my learning CSS. mainly focus on some tricks that I have encountered.

** Cascade Order (increasing priority) **

  1. External <link>
  2. In the <head>
  3. Inline style attribute
  4. Using !important
    also the priority is dependent on position in document
.intro {
    color: #444;
}
.intro {
    color: #555;
} // this color will be shown

Float
Its main function is to remove elements from the document flow and moves them to a specified edge

  • Other content within the parent element will wrap around floats
    float: left /right /none /inheret
float
  • Stacking order
    Floated elements stack up to the parent edge, (you can imagine there is gravity pulling elements from one side). then move down to the next available edge
stack

Be aware with elements that have different heights

the right block is blocked by lengthened element

Ok, we now have some knowledge of what float does. And here comes the most confusing problem along with floating, and the reason why we need to use clear technique

*** the problem***
Generally, the element will stay right within the border of its parent element.

normal element

however, if this element got floated, it would jump out of normal flow and at the same time parent container collapse.
floated elements

solution
first lets assume this situation happens.

<!--- floated elements --->
<div class="clear"></div>
.clear:after{
    clear: both;
    content: "";
    display: table;
}
<div class="wrapper clear">
    <!--- floated elements --->
</div>

let's see how float is useful

  • Generate a horizontal menu

The priority of a selector

we can use following number to represent the priority of selectors

selector priority

for example -->

p { color: #aaa; }   //           0,0,0,1
.intro { color: #bbb;} //         0,0,1,0
#bingo {color: #ccc;} //          0,1,0,0
<h1 style="color:#ddd;"></h1> //  1,0,0,0
p { color: #eee !important;}         //  dominant over others     

following demo
will show red because the red number outweighs blue one

<section id="content">
    <p class="line"> haha </p>
    <p> lala </p>
</section>

#content p{
    color: red;  // 0,1,0,1 
}

.line {
    color: blue; // 0,0,1,0
}

The box model

DOM element

Width
Total calculated box width = content width + padding width + border width

p {
    boder: 5px solid red;
    padding-left: 10px;
    padding-right: 5px;
    width: 100px;
}

then the total width is 5+10+5+100 = 125px

Overflow property
overflow: visible /auto /hidden /scroll

  • visible: the default value, which allows content to extend beyong container boundries.


    visible
  • auto: adds a scrollbar as needed when content overflows


    auto
  • hidden: hides content that extends beyond the container


    hidden
  • scroll: adds a scrollbar at all times, ever if unneeded


    scroll

Positioning

position: static /relative /absolute /fixed
elements have a position value of static by default
Using a value other than static causes an object to become a positioned element
Positioned elements may use the top, left, bottom, and right properties for placement

  • Relative positioning
    Renders in the normal flow, then shifted via positioning properties
    demo
  • Absolute positioning
    Takes an element out of the normal flow for manual positioning
<article>
    <h2>New Snowshoes</h2>
    <h3>By Garret</h3>
    <p> This season's hot styles, available now!</p>
</article>
h3{
    position: absolute;
    right: 10px;
    top: 10px;
}

absolute positioning: NOTE the window

*Notice the position is relative to the window object *
if you want the position is relative to parent. then need to make parent not static. Generally we make parent relative so that it would stay in flow.
absolute positioning: relative to parent

  • Z-index
  • No z-index or equal z-index == overlap determined by placement in DOM


    z-index: equal value
  • Elements must be positioned for z-index to take effect. User relative if you're not interested in moving the object
  • Higher values appear above lower values

Display

display: none, block, inline, inline-block

  • Block elements
  • Stretch the full width of their container
  • Behave as though there is a line break before and after the element
  • Full box model can be manipulated
  • Tags that are block-level by default: <div>,<p>,<ul>,<ol>,<li> and <h1> through <h6>
Block
  • Inline elements
  • Typically found within block-level elements
  • Only take up the space of the content inside
  • Do not generate a line break before and after the content
  • Tags that are inline-level by default: <span>,<a>,<em>,<img> and<strong>
Inline element
  • Inline-block elements
    Same flow as an inline element but behave as a block element
    inline-block

Centering

  • Centering a block-level element
  • Define a width, and the element width must be less than that of the parent container
  • maring: 0 auto;
centering a block element
  • Centering inline and inline-block elements
    text-align: center
    Screen Shot 2015-06-09 at 2.07.42 PM.png

CSS Safety

  • margin collapsing
    margin collapsing

    only vertical margin collapse, and horizontal margin never collapse W3.Collapsing margins will not occur when one or more block element has:
  • Padding or border
  • Relative or absolute positioning
  • A float left or right

Image

  • image usage

  • content should be marked up as inline images

  • Layout elements should be defined as background images

  • image replacement
    text-indent: -9999px;

  • sprite and base-64 encode

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上渴,一起剝皮案震驚了整個濱河市粹懒,隨后出現(xiàn)的幾起案子锭弊,更是在濱河造成了極大的恐慌,老刑警劉巖麦萤,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扁眯,居然都是意外死亡壮莹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門姻檀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來命满,“玉大人,你說我怎么就攤上這事绣版〗禾ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵杂抽,是天一觀的道長诈唬。 經(jīng)常有香客問我,道長默怨,這世上最難降的妖魔是什么讯榕? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上愚屁,老公的妹妹穿的比我還像新娘济竹。我一直安慰自己,他們只是感情好霎槐,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布送浊。 她就那樣靜靜地躺著,像睡著了一般丘跌。 火紅的嫁衣襯著肌膚如雪袭景。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天闭树,我揣著相機與錄音耸棒,去河邊找鬼。 笑死报辱,一個胖子當著我的面吹牛与殃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碍现,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼幅疼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了昼接?” 一聲冷哼從身側(cè)響起爽篷,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慢睡,沒想到半個月后逐工,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡漂辐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年钻弄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片者吁。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡窘俺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出复凳,到底是詐尸還是另有隱情瘤泪,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布育八,位于F島的核電站对途,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏髓棋。R本人自食惡果不足惜实檀,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一惶洲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膳犹,春花似錦恬吕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至豺旬,卻和暖如春钠惩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背族阅。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工篓跛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坦刀。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓举塔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親求泰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

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