【轉】10條你不可不知的css規則

10條你不可不知的css規則

Posted on 2006-12-20 10:33 雨中太陽 閱讀(343) 評論(1) 編輯 收藏
:【譯】10條你不可不知的css規則

正文:
Published December 6th, 2004 in CssStaff Tags: No Tags.

?

原文地址:Ten CSS Tricks You May not Know

kelet譯后感:這10條中有很多條我認為都非常有用,你平時可能遇到的一些莫名的問題也許會在這里找到解決的方法。一些地方我還是把英文的標記原名放在括號內注明了,這樣可以明白一些。希望對你有所幫助。(ps:還是挺討厭遇到<和>的html語句的,因為我暫時只能用它們的原始代號來轉換,請留言中避免使用它們,如果要用的話可以使用原始的代碼來轉換,查看我的頁面源代碼就可以看到怎么表示了。)

1. CSS字體定義縮寫規則
當你定義字體時用到以下這些屬性:
font-size: 1em;
line-height: 1.5em;
font-weight: bold;
font-style: italic;
font-variant: small-caps;
font-family: verdana,serif;

那么你可以縮寫成這樣簡短的一行:font: 1em/1.5em bold italic small-caps verdana,serif 這樣看上去就好多了。只是我需要給你幾點忠告:這種css縮寫形式只有當你同時定義了字體和字號的時候才有用。且如果你定義了字重(font- weight),字型(font-style)以及字的變量(font-varient),那么這些屬性值就會自動顯示為默認的正常狀態的值,記住這一點。
2. 采用兩個類
通常我們只采用一個類(class)來定義一個屬性,但是這并不表示你只能這樣做不可。事實上,你可以想加多少類在一個屬性上都可以。例如你可以這樣

?

使用這兩個類(用空格分開而不是逗號)意味著這個段落將同時采用text和side的規則。如果兩個類之間有重復的定義,那么將采用兩個中屬于下一級的那個類的規則。
3. CSS的默認邊框(border)值
當你定義個border的首你通常會考慮它的顏色(color)、寬度(width)和樣式(style)(次序任意)。例如 border: 3px solid #000將會顯示一個黑色的實心的3px寬邊。然而這里唯一需要定義的只是border的style(樣式)。

如果你要定義一個border為實心(solid),那么邊框就將采用瀏覽器默認的值。但是什么是默認的值呢?邊框的默認寬度是中等(相當于3到 4px),默認的顏色是邊框內的文本的顏色。如果這兩者中任意一個都是你想要的邊框的樣式,那么你完全可以不用自己費勁去寫定義語句。
4. IE會忽略!important
5. 在css規則中通常最后定義的會被優先執行。然而如果你在一個語句后面采用采用 !important那么瀏覽器應當會不考慮其后的語句而優先執行這個css語句。這一規則對所有非ie瀏覽器均適用。例如:margin-top: 3.5em !important; margin-top: 2em 那么在所有非IE瀏覽器中上頂邊將會被設置成3.5em,而ie中設置成2em。這一點有時候也是很有用的。尤其是當使用相對邊緣(如舉例中的那種)的時候,這一點可以在ie和其他瀏覽器里面顯示的略為不同。 圖片替代技巧
我們通常建議采用HTML標記來顯示text,但是不要用在圖片顯示上面。這樣的做的好處是可以提高頁面加載速度并且有比較的好的訪問率。然而如果你非覺得你的頁面的訪客都不喜歡看你這個網頁的文字的話,那么你只能使用圖片了。

舉例來說,如果你是個配件供應商,你想要每個頁面的頂圖都是你要賣的小配件,并且希望這一詞條能夠被搜索引擎搜到的話,你可以這樣定義圖片< h1>“Buy

。這樣做當然可以,但是我得很明白的告訴你的是搜索引擎并不會看重你圖片的alt文本。(因為有太多網頁建設者使用alt文本來冒充關鍵字了)。所以另外一種方法是

Buy widgets

,這樣你顯然不必采用你的隱藏文字了。那么修正這一問題的方法是在css的樣式里面這樣定義
h1
{ background: url(widget-image.gif) no-repeat;
}
h1 span
{
position: absolute;
left:-2000px;
}

?

那么帶有你希望字體的圖片現在就會在瀏覽器下正常顯示了,而且由于我們采用了距離屏幕左邊緣2000px的定義那個文本并不會顯示在頁面的圖片上。
6. 另析CSS盒子(box)模型
box模型通常使用來修正ie6以前的瀏覽器中,邊框(border)和補白(padding)被包含在元素的寬度值中而不是附加在寬度之外的問題。例如當定義一個container的尺寸的時候,你也許會采用下面的css規則:
#box
{
width: 100px;
border: 5px;
padding: 20px;
}
這個css規則會使用在

中。

?

這就意味著在所有ie6后的瀏覽器下box的總寬度是150px(100px的寬+2個5px寬的邊框+兩個20px寬的補白)。在這些瀏覽器中box的總寬度包括了補白和邊框才是100px。box模型的定義可以修正這一問題,但是也會帶來許多麻煩。

一個簡單的修正法如下:
#box
{
width: 150px;
}
#box div {
border: 5px;
padding: 20px;
}

這個css規則會使用在

中。很完美。現在所有瀏覽器下的box寬度都是150px。
7. 中間對齊一個塊(block)元素
假設你想要一個固定寬度的網頁布局,主體部分以浮動元素形式顯示在屏幕中央。你可以采用下面的CSS語句:
#content
{
width: 700px;
margin: 0 auto;
}
然后你會想要
包圍住每一個頁面的內容項,而且它有一個自動的左邊緣和右邊緣以確保它總是在屏幕中央。很簡單。。。不過也不盡然,我們仍然得考慮一下ie6以前的瀏覽器的顯示問題,因為這些瀏覽器不會按照css的控制進行中心對齊。你得改變一下上面的css語句:
body
{
text-align: center;
}
#content
{
text-align: left;
width: 700px;
margin: 0 auto;
}

?

這就會中心對齊主體部分,但是會導致文字都變成中心對齊的。為了修正這一問題,我們可以把文字對齊方式 text-align: left這條語句加到content div的css定義中去。
8. 采用css進行垂直對齊
表格(table)的垂直對齊不是個難題。為了使一個cell的所有子內容都在它中間一直線對齊,你可能會采用vertical-align: middle,但是這并不會在css布局中發揮作用。假設你想要一個高度是2em的菜單項,你或許會在css規則中使用vertical align的語句,這沒什么作用,并且文字會全部顯示在box元素的頂部。

唔。。不是你想要的效果吧。有什么解決方法么?那么你可以在css語句里面把行高設置為和box元素的高度一樣的值。在上面的語句中box就是2em高,然后我們可以在它的css定義中加入 line-height: 2em,并且使text文本浮動(float)在box的中間。ok,效果達到了。
9. 在一個容器(container)里面采用CSS定位
CSS的一個很大的優點是你可以用它來設置一個對象(object)在頁面中的絕對位置。當然你也可以(而且經常會被用到)在一個容器(container)里面設置對象(object)的位置。這很容易實現。只要采用下面的css語句:
#container
{
position: relative;
}

現在這個容器(container)內的任何一個元素都會變成相對于它的定位。你可以采用下面的html結構:

?

為了使導航的位置在距離它的父元素box左側30px,頂部5px的位置,你可以使用下面的css語句:
#navigation
{
position: absolute;
left: 30px;
top: 5px;
}

完成!在這個特殊的例子中,你當然你可以使用margin: 5px 0 0 30px,但是其他一些情況下你最好還是采用position來定位。
10. 屏幕底部的背景顏色
CSS的一個缺點就是不能實現垂直方向的控制,這樣就會導致不能用table進行布局的問題。假設你有一個包含網站導航的列要放在頁面的左側,這個頁面背景是白色的,但是你想要左側有一個藍色背景。很簡單,你只要采用下面這樣的CSS語句:
#navigation
{
background: blue;
width: 150px;
}

采用上面的語句的話,會有一個問題:由于導航內容的每一個條目并不會延伸倒頁面底部,就會產生它下方的部分仍然顯示白色背景色。這樣看起來好像被切斷了一樣的左側藍色背景色就會破壞你原本的設計意圖。那么你能怎么辦呢?

很不幸的是只有一個解決方法,那就是用一個藍色的背景圖來代替左側的藍色背景色。語句如下:
body
{
background: url(blue-image.gif) 0 0 repeat-y;
}
你放置在原來位置上的背景圖的寬度正好是150px而且顏色也就用你想要的那個顏色。這樣座的缺點就是你不能以em來定義左側寬度,因為如果用戶手動調整瀏覽器的文字大小的時候,左列的寬度也會改變,但是藍色背景圖像并不會跟著變換尺寸。

但是現在只有這么一個辦法解決我們一開始列出的問題,所以如果你希望左列的顏色不一樣的話最好用px來定義左列的寬度。

分類: CSS+DIV
好文要頂 關注我 收藏該文
雨中太陽
關注 - 4
粉絲 - 3
+加關注
0
0
? 上一篇:VS 2005 SP1簡體中文版下載地址
? 下一篇:Div+CSS布局 網站設計的優點!

Feedback

#1樓5979022006/12/20 13:10:00 ??回復引用

2006-12-20 13:10 by Anders Cui
很不錯,收藏了!
支持(0)反對(0)
http://pic.cnblogs.com/face/u12089.jpg
刷新評論刷新頁面返回頂部
發表評論

昵稱:

評論內容:
引用粗體鏈接縮進代碼圖片

不改了 退出 訂閱評論

[Ctrl+Enter快捷鍵提交]

【推薦】超50萬VC++源碼: 大型組態工控、電力仿真CAD與GIS源碼庫!
【推薦】華為云11.11普惠季 血拼風暴 一促即發
【拼團】騰訊云服務器拼團活動又雙叒叕來了!
【推薦】騰訊云新注冊用戶域名搶購1元起
騰訊云1008
最新IT新聞:
· 今日頭條是否會打著電商的幌子做社交?
· 西湖大學成立,施一公:努力成為中國高等教育改革的探索者
· 貝皮科倫布號最全揭秘:幾經推遲 終于等到花開
· 小牛上市 李一男的江湖路
· 奔跑的西湖大學:創民辦研究型大學先河
? 更多新聞...
最新知識庫文章:
· 阿里云的這群瘋子
· 為什么說 Java 程序員必須掌握 Spring Boot ?
· 在學習中,有一個比掌握知識更重要的能力
· 如何招到一個靠譜的程序員
· 一個故事看懂“區塊鏈”
? 更多知識庫文章...

轉載于:https://www.cnblogs.com/irischen/p/10-css.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249181.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249181.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249181.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 面向對象【1】

對象 屬性 方法面向對象特征&#xff1a;分裝 繼承 多態【不同對象對同一方法響應不同行動】類定義class xxx:........類對象類對象支持兩種操作&#xff1a;屬性引用和實例化 屬性引用 使用和 Python 中所有的屬性引用一樣的標準語法&#xff1a;類對象名.屬性名 類對象創建…

【前端面試】HTML5+CSS3初級面試1

最近剛好在看前端的面試&#xff0c;把看到的內容總結一下&#xff0c;方便大家一起學習。 1、簡單說一下對HTML5CSS3的了解。 HTML5和CSS3不僅是兩項新的Web技術標準&#xff0c;而且代表了下一代HTML和CSS技術。其未來的發展前景已經可以預見&#xff0c;那就是HTML5必將被越…

福大軟工 · 第八次作業(課堂實戰)- 項目UML設計(團隊)

1、隊伍信息&#xff1a; 隊伍名稱&#xff1a;彳艮彳亍團隊 學號名本次作業博客鏈接031602219奇豪(隊長)https://www.cnblogs.com/S031602219/p/9822576.html041602209毓明http://www.cnblogs.com/mingsonic/p/9820702.html041602204水源http://www.cnblogs.com/littlenorthwe…

【轉發】實現yolo3模型訓練自己的數據集總結

原文鏈接&#xff1a;實現yolo3模型訓練自己的數據集總結 經過兩天的努力&#xff0c;借鑒網上眾多博客&#xff0c;在自己電腦上實現了使用yolo3模型訓練自己的數據集并進行測試圖片。本文主要是我根據下面參考文章一步步實施過程的總結&#xff0c;可能沒參考文章中那么詳細&…

詳解 vue-cli 的打包配置文件代碼(帶注釋)

一、前言 對于webpack基礎不好&#xff0c;node指令不通的童鞋。估計對自己搭建Vue、react腳手架是相當頭疼的&#xff0c;有種無從下手的感覺。然而&#xff0c;從頭看這2塊&#xff0c;耗時太長&#xff0c;而且說實話得練才行&#xff0c;不練練手看不明白。那大多數人就采取…

NoClassDefFoundError

技術之路最公平也最殘酷的原因是&#xff1a;沒有捷徑&#xff0c;需要日積月累的積累&#xff0c;以及對技術持久的熱情。NoClassDefFoundError這個錯誤一般就兩種情況&#xff1a;1、沒有引入相應的jar包2、兩個jar包中都有這個class&#xff0c;無法確認是引用的哪一個&…

【記錄一下】從0到1 我的python開發之路

請設計實現一個商城系統&#xff0c;商城主要提供兩個功能&#xff1a;商品管理、會員管理。商品管理&#xff1a;- 查看商品列表 - 根據關鍵字搜索指定商品 - 錄入商品會員管理&#xff1a;【無需開發&#xff0c;如選擇則提示此功能不可用&#xff0c;正在開發中&#xff0c;…

Python10/22--面向對象編程/類與對象/init函數

類&#xff1a; 語法: class關鍵字 類名# 類名規范 大寫開頭 駝峰命名法class SHOldboyStudent: # 描述該類對象的特征 school "上海Oldboy" name "矮根" age 68 gender "unknown" # 在定義階段 # 只要包含該類的py被…

Django Form和ModelForm組件

Form介紹 我們之前在HTML頁面中利用form表單向后端提交數據時&#xff0c;都會寫一些獲取用戶輸入的標簽并且用form標簽把它們包起來。 與此同時我們在好多場景下都需要對用戶的輸入做校驗&#xff0c;比如校驗用戶是否輸入&#xff0c;輸入的長度和格式等正不正確。如果用戶輸…

ESLint 規則詳解

前端界大神 Nicholas C. Zakas 在 2013 年開發的 ESLint&#xff0c;極大地方便了大家對 Javascript 代碼進行代碼規范檢查。這個工具包含了 200 多條 Javascript 編碼規范且運行迅速&#xff0c;是幾乎每個前端項目都必備的輔助工具。可是&#xff0c;這么多規則&#xff0c;每…

全文搜索引擎 ElasticSearch 還是 Solr?

原文鏈接 最近項目組安排了一個任務&#xff0c;項目中用到了全文搜索&#xff0c;基于全文搜索 Solr&#xff0c;但是該 Solr 搜索云項目不穩定&#xff0c;經常查詢不出來數據&#xff0c;需要手動全量同步&#xff0c;而且是其他團隊在維護&#xff0c;依賴性太強&#xff0…

對局匹配

問題描述小明喜歡在一個圍棋網站上找別人在線對弈。這個網站上所有注冊用戶都有一個積分&#xff0c;代表他的圍棋水平。小明發現網站的自動對局系統在匹配對手時&#xff0c;只會將積分差恰好是K的兩名用戶匹配在一起。如果兩人分差小于或大于K&#xff0c;系統都不會將他們匹…

NodeJS作為Web架構中間層的使用

截至2016年12月&#xff0c;中國網民規模已達7.31億。傳統的網站系統是否能夠支撐得起如此龐大的且不斷增長的用戶訪問并且為用戶提供體驗友好的頁面&#xff1f; 一、傳統的前后端&#xff1a; 二、傳統的前后端分離問題&#xff1a; 性能問題&#xff1a; 1、渲染、數據都在…

Springboot項目修改html后不需要重啟---springboot項目的熱部署

一、spring-boot-devtools 在pom中直接引入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency> 設置以下兩項&#xff08…

Hibernate中session的get方法和load方法的區別

一.發送SQL時機&#xff1a; load方法采用延遲加載&#xff08;lazy懶加載&#xff09;&#xff0c;執行到這行代碼的時候&#xff0c;不會發送SQL語句&#xff0c;當真正使用這個對象的數據&#xff08;對象的數據不包括主鍵&#xff09;的時候才發送SQL語句&#xff1b; get…

Node.js Web 開發框架大全《中間件篇》

這篇文章與大家分享優秀的 Node.js 中間件模塊。Node 是一個服務器端 JavaScript 解釋器&#xff0c;它將改變服務器應該如何工作的概念。它的目標是幫助程序員構建高度可伸縮的應用程序&#xff0c;編寫能夠處理數萬條同時連接到一個&#xff08;只有一個&#xff09;物理機的…

windows server 2012 流媒體服務器搭建(直播與點播)

IIS Live Smooth Streaming&#xff08;實時平滑流式處理&#xff09;是微軟下一代流媒體解決方案。該技術是在IIS web中集成媒體傳輸平臺IIS media services&#xff0c;實現利用標準 HTTP Web 技術以及高級 Silverlight 功能&#xff0c;確保在互聯上傳輸質量最佳、播放流暢音…

團隊項目第一篇——NABCD

團隊名稱&#xff1a;筑夢之舟 團隊項目名稱&#xff1a;跑跑 N&#xff08;Need&#xff09;需求&#xff1a; 有許多人在跑步時想了解自己的移動軌跡和跑步距離很不便利&#xff0c;無法了解跑步的日程&#xff0c;我們的軟件就是為了更加方便熱愛跑步的人能夠參加到跑步之中…

Vue warn Failed to mount component: template or render function not defined

問題如圖&#xff0c;造成這類的問題一般有這么幾個原因。 代碼的拼寫問題&#xff0c;當然這是最低級的錯誤vue定義的問題&#xff0c;這里我說明兩點 在組件內部定義組件時&#xff0c;template 對應的必須是html字符串引用外部組件時&#xff0c;vue文件必須以template標簽…

Python實現線性回歸2,梯度下降算法

接上篇 4.梯度下降算法 《斯坦福大學公開課 &#xff1a;機器學習課程》吳恩達講解第二課時&#xff0c;是直接從梯度下降開始講解&#xff0c;最后采用向量和矩陣的方式推導了解析解&#xff0c;國內很多培訓視頻是先講解析解后講梯度下降&#xff0c;個人認為梯度下降算法更為…