#01你認真學了css?(基本樣式1)
一、塊級元素、行內元素
- 塊級(block-level);行內(內聯inline-level)
- 塊級可以包含塊級和行內;行內只能包含文本和行內
- 塊級佔據一整行空間;行內佔據自身寬度空間,
- 寬高設置、內外邊距的差異
1、block-level
div h1 h2 h3 h4 h5 h6 p hr(線)form ul dl ol pre table li dd dt tr td th
2、inline-level
em strong span a br imgbutton input label select textarea code script
如圖:
二、寬高-width、height
只對塊級元素設置生效,對行內元素設置無效
三、邊框-border
1、涉及邊框的幾個元素
粗細、顏色、類型(實線、虛線、點線)
border-width,border-color,border-style
/*簡寫*/p,span{ border:2px blue solid; }
如圖:
第一個:
第二個:
第三個:
第四個:
第五個:
2、如何使用邊框做三角形?
第一個:
第二個:
第三個:
四、邊距
1、盒模型
2、padding-內邊距
代表內邊距,有四個方向的值,可以合寫,值可以是數值、百分比(相對於父容器,不是自身)
padding-top
padding-rightpadding-bottompadding-left
3、margin-外邊距
代表外邊距,有四個方向的值,可以合寫,值可以是數值、百分比(相對於父容器,不是自身),還可以是負值
外邊距合併問題
在行內元素中,使用margin和padding左右生效,上下不生效,如圖:
margin-top
margin-rightmargin-bottommargin-left
3.1、margin:0 auto 塊級元素居中
.box{/* margin: 0 auto; 實際上是下面兩個起了作用 */margin-left:auto;margin-right:auto;}
對於塊級元素設置margin:0 auto(即:margin:0 auto 0 auto;)可以達到居中目的
4、* 去除元素默認樣式的margin 和padding
*{ margin:0; padding:0;}
由於頁面元素在瀏覽器會有自身的默認樣式:如圖
用於清除瀏覽器的固定樣式,重新設置寬高,如圖可加:
註:默認樣式1em=16px
五、display
1、塊級和行內的display:
- 塊級:block,list-item,table
- 行內:inline,inline-table,inline-block
註:一個元素在默認情況下是一個display:inline
displayValue: inline | block | list-item | inline-block | table | inline-table | table-row | table-cell | none | inheritInitial: inlineApplies to: all elementsInherited: no
註:display:inline-block的布局,在做任務的時候,有涉及的資料可以看一下:
CSS之使用display:inline-block來布局 - 淵源遠願 - 博客園2、CSS繼承和不繼承
繼承:每一個元素都是文檔樹的一部分,每個元素都有其對應的父級元素,每一個父級元素的CSS屬性值都可以被應用到它的子元素中。可繼承屬性一般為:font-size、font-family、color
反之,CSS不繼承通常為頁面的細節元素,如border、padding、margin、background-color 、width、height等
六、font
- font-size:字體大小
如:12px(較小)、14px(正常)、16px(瀏覽器默認)、20px(標題大小)、22、28、60px(大標題大小)
- font-family:字體,有宋體、微軟雅黑、Arial等
- font-weight:文字粗度,常用的就是默認值regular和粗體bold
- line-height:行高,即文字大小,可以用百分比、倍數或者固定尺寸。
- 垂直高度:font-size*line-height(行+文字佔據的垂直空間)
註:以上屬性為可繼承給子元素
1、如何使用:
body{ font: 12px/1.5 tahoma,arial,Hiragino Sans GB,5b8b4f53,sans-serif;}或者p { line-height: 1.5; font-size: 14px; font-family: Helvetica Neue,Helvetica,Arial,sans-serif; font-weight: bold;}
2、font-family
(1)字體原理
使用瀏覽器打開頁面時,瀏覽器會讀取 HTML 文件進行解析渲染。當讀到文字時會轉換成對應的 unicode碼(可以認為是世界上任意一種文字的特定編號)。再根據HTML 里設置的 font-family (如果沒設置則使用瀏覽器默認設置)去查找電腦里(如果有自定義字體@font-face ,則載入對應字體文件)對應字體的字體文件。找到文件後根據 unicode 碼去查找繪製外形,找到後繪製到頁面上
(2)了解
這裡有一篇老師寫的關於字體方面的實現原理,以前學過一點設計看了,以後如何配合設計師進行字體需求上還是蠻受用的,可以看看:
若愚:「每日一題」聊一聊字體圖標的實現原理(3)font-family寫法
在 CSS 中設置字體時,直接寫字體中文或英文名稱瀏覽器都能識別,直接寫中文的情況下編碼(GB2312、UTF-8 等)不匹配時會產生亂碼。保險的方式是將字體名稱用Unicode來表示
宋體 | SimSun | 5B8B4F53 (Unicode碼)
黑體 | SimHei | 9ED14F53
微軟雅黑 | Microsoft YaHei | 5FAE8F6F96C59ED1
?可打開控制台 escape(微軟雅黑)
,將 %u
替換成
3、chrome最小字體
chrome 默認字體大小16px, 最小字體 12px
若需要小於12px的字體,可參考以下解決方案:islittle/Web-Developer
七、文本
1、類型
- text-align:文本對其方式。left、center、right、justify(≈兩端對齊)
- text-indent:文案第一行縮進距離
- text-decoration:none(去掉下劃線)、underline、line-through(刪除線)、overline(頂部線)
- color:文字顏色
- text-transform:改變文字大小寫。none(不改寫)、uppercase(小寫展示大寫)、lowercase(大寫展示小寫)、capitalize(單詞的首字母變大寫展示)
- word-spacing:可以改變字(單詞)之間的標準間隔(對於中文,每字就是一單詞)
- letter-spacing:字母間隔修改的是字元或字母之間的間隔
演示如圖所示:
2、幾種情況:
(1)行內元素居中,如:
<style> .box{ text-align: center; }</style> <div class="box"> <img src="http://7xpvnv.com2.z0.glb.qiniucdn.com/6673909a-098c-4202-8b80-f4aad64e0262.png"> </div>
(2)display:inline-block元素居中,如:
<div stylex="text-align: center;"> <img stylex="margin: 0 auto" src="XXX.png"> </div>
(3)單行文本溢出,關鍵代碼如:
.card > h3{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
如圖:
八、顏色
1、單詞:
red、blue、pink、yellow、white、black
2、十六進位:
#ff0000 紅色
#0000ff 藍色
#008000 綠色
#000000(黑色)=#000、#ffffff(白色)=#fff、#eeeeee(淡灰色)=#eee、#cccccc(灰色)=#ccc、#666666(深灰色)=#666、#333333(深黑色)=#333、#f00(紅色)、#0f0(綠色)、#00f(藍色)
rgb: rgb(255,255,255),rgb(0,255,0)
rgba: rgba(0,0,0,0.5) css3中涉及
九、單位
1、px:固定單位
*2、em:相對長度單位,相對於當前元素的字體大小。如圖:
*3、rem:相對單位,相對於根元素(html)字體大小,即1rem = html設置的font-size。移動端較常用。
關於rem的好處我查了資料這個我比較理解,分享出來:
css3的字體大小單位[rem]到底好在哪?4、vw vh:相對單位,1vw為屏幕寬度的1% 兼容性較差
5、百分比:(涉及寬高?文字大小?line-height、position)
十、其他
1、a鏈接設置顏色
註:
- 當滑鼠放置a鏈接,本身就會出現「手」指針的形狀效果
- a有默認顏色和樣式,會覆蓋繼承的樣式
a{color:red;text-decoration: none;}
2、列表去掉點
/* 設定列表樣式為:無 ,即沒有順序數字、圓點出現*/
ul{ list-style: none;}/*也可這樣*/ li{ list-style: none;}
如圖:
推薦閱讀:
※用CSS畫行號
※css sprite中的sprite應該如何翻譯比較達意?
※CSS整理
※盒模型的哪種寬高定義更符合人類直覺?
※面對變化莫測的 CSS,我該怎麼辦?