CSS一些實用的技巧

css 字體簡寫規則

當使用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

現在好多了吧,不過有一點要注意:使用這一簡寫方式你至少要指定 font-size 和 font-family 屬性,其他的屬性(如 font-weight,font-style,font-varient)如未指定將自動使用默認值。

同時使用兩個class

通常我們只為屬性指定一個class,但這并不等于你只能指定一個,實際上,你想指定多少就可以指定多少,例如:

...

通過同時使用兩個 class(使用空格而不是逗號分割),這個段落將同時應用兩個 class 中制定的規則。如果兩者中有任何規則重疊,那么后一個將獲得實際的優先應用。

css中邊框(border)的默認值

當編寫一條邊框的規則時,你通常會指定顏色、寬度以及樣式(任何順序均可)。例如:border: 3px solid #000(3像素寬的黑色實線邊框),其實這個例子中唯一需要指定的值只是樣式。假如你指定樣式為實線(solid),那么其余的值將使用默認值:默認的寬度為中等(相當于3到4像素);默認的顏色為邊框里的文字顏色。如果這正是你想要的效果,你完全可以不在css里指定。

!important會被IE忽略

在 css 中,通常最后指定的規則會獲得優先權。然而對除了IE以外的瀏覽器來說,任何后面標有 !important 的語句將獲得絕對的優先權,例如:margin-top: 3.5em !important; margin-top: 2em。

除IE以外所有瀏覽器中的頂部邊界都是3.5em,而IE為2em,有時候這一點很有用,尤其在使用相對邊界值時(就像這個例子),可以顯示出IE與其他瀏覽器的細微差別。(很多人可能還注意到了css的子選擇器也是會被IE忽略的)

圖片替換的技巧

使用標準的html而不是圖片來顯示文字通常更為明智,除了加快下載還可以獲得更好的可用性。但是如果你決心使用訪問者的機器中可能沒有的字體時,你只能選擇圖片。

舉例來說,你想在每一頁的頂部使用“Buy widgets”的標題,但你同時又希望這是能被搜索引擎發現的,為了美觀你使用了少見的字體那么你就得用圖片來顯示了:

這樣當然沒錯,但是有證據顯示搜索引擎對真實文本的重視遠超過alt文本(因為已經有太多網站使用alt文本充當關鍵字),因此,我們得用另一種方法:

Buy widgets

,那你的漂亮字體怎么辦呢?下面的css可以幫上忙:

h1 {

background: url(widget-image.gif) no-repeat;

}

h1 span {

position: absolute;

left:-2000px;

}

現在你既用上了漂亮的圖片又很好的隱藏了真實文本——借助css,文本被定位于屏幕左側-2000像素處。

css盒模型hack的另一選擇

css盒模型hack被用來解決IE6之前的瀏覽器顯示問題,IE6.0之前的版本會把某元素的邊框值和填充值包含在寬度之內(而不是加在寬度值上)。例如,你可能會使用以下css來指定某個容器的尺寸:

#box {

width: 100px;

border: 5px;

padding: 20px;

}

然后在html中應用:

...

,盒的總寬度在幾乎所有瀏覽器中為150像素(100像素寬度+兩條5像素的邊框+兩個20像素的填充),唯獨在IE6之前版本的瀏覽器中仍然為100像素(邊框值和填充值包含在寬度值中),盒模型的hack正是為了解決這一問題,但是也會帶來麻煩。更簡單的辦法如下:

#box {

width: 150px;

}

#box div {

border: 5px;

padding: 20px;

}

...

這樣一來在任何瀏覽器中盒的總寬度都將是150像素。

將塊元素居中

假設你的網站使用了固定寬度的布局,所有的內容置于屏幕中央,可以使用以下的css:

#content {

width: 700px;

margin: 0 auto;

}

你可以把html的body之內任何項目置于

中,該項目將自動獲得相等的左右邊界值從而保證了居中顯示。不過,這在IE6之前版本的瀏覽器中仍然有問題,將不會居中,因此必須修改如下:

body {

text-align: center;

}

#content {

text-align: left;

width: 700px;

margin: 0 auto;

}

對body的設定將導致主體內容居中,但是連所有的文字也居中了,這恐怕不是你想要的效果,為此#content 的div還要指定一個值:text-align: left。

使用css實現垂直居中

垂直居中對表格來說是小菜一碟,只需指定單元格為 vertical-align: middle 即可,但這在css布局中不管用。假設你將一個導航菜單的高度設為2em,然后在css中指定垂直對齊的規則,文字還是會被排到盒的頂部,根本沒有什么區別。

要解決這一問題,只需將盒的行高設為與盒的高度相同即可,以這個例子來說,盒高2em,那么只需在css中再加入一條:line-height: 2em 就可實現垂直居中了!

容器內的css定位

css的最大優點之一就是可以將對象定位在文檔的任何位置,同樣的也可以將對象在某容器內進行定位。只需要為該容器添加一條css規則:

#container {

position: relative;

}

則容器內的任何元素的定位都是相對于該容器的。假定你使用以下html結構:

...

如果想將navigation定位在容器內離左邊界30像素,離頂部5像素,可以使用以下css語句:

#navigation {

position: absolute;

left: 30px;

top: 5px;

}

延伸至屏幕底部的背景色

css的缺點之一是缺乏垂直方向的控制,從而導致了一個表格布局不會遇到的問題。假設你在頁面的左側設定了一列用于放置網站的導航。頁面為白色背景,但你希望導航所在的列為藍色背景,使用以下css即可:

#navigation {

background: blue;

width: 150px;

}

問題在于導航項不會一直延伸到頁面的底部,自然它的背景色也不會延伸到底部。于是左列的藍色背景在頁面上被半路截斷,浪費了你的一番設計。怎么辦呢?很不幸我們現在只能用欺騙的辦法,即將body的背景指定為與左列同顏色同寬度的圖片,css如下:

body {

background: url(blue-image.gif) 0 0 repeat-y;

}

背景圖應為寬150像素的藍色圖片。這一辦法的缺點是沒法使用em來指定左列的寬度,當用戶改變文字的大小導致內容的寬度擴張時,背景色的寬度不會隨之改變。到寫這篇文章為止這是對這類問題的唯一解決辦法,因此你只能為左列使用像素值來獲得能夠自動延伸的不同的背景色。

歡迎關注我的公眾號(同步更新文章)DoNet技術分享平臺

閱讀原文

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

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

相關文章

linux openssh升級8.1,Centos7利用rpm升級OpenSSH到openssh-8.1p1版本

由于近期安全事故頻發,打算把機器OpenSSH升級到最新版本,找了一圈,發現分享的rpm包就到7.4版本,最新版已經到8.1.p1,所以博客自編譯一個openssh-8.1p1的rpm包進行分享。檢查環境:[roottest]# ssh -VOpenSSH…

《HTTP權威指南》 – 11.驗證碼和新鮮度

服務器應當告知客戶端能夠將內容緩存多長時間,在這個時間內就是新鮮的。服務器可以用這兩個首部之一來提供信息: Expires(過期)Cache - Control(緩存控制)Expires首部 規定文檔“過期”的具體時間&#xff…

產品經理必備神器推薦

歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺閱讀原文工欲善其事,必先利其器,作為最追求極致體驗的產品經理群體,手里有一件趁手的法器,工作起來才會有一種享受般的快感,最近…

野火linux底板設計,野火STM32F767套件(底板+核心板)

一、兌換形式1、電子芯吧客注冊用戶均可通過免費申請與硬件兌換兩種方式進行申請試用2、免費申請形式為用戶通過分享試用活動至好友,換取申請板卡一次試用資格3、硬件兌換方式為用戶捐贈一塊閑置板卡至電子芯吧客,換取申請板卡一次試用資格4、免費申請渠…

c++ builder xe2 (Embarcadero rad studio) 遠程調試 同樣適用于 delphi 遠程調試 教程

c builder xe2 (Embarcadero rad studio) 遠程調試 同樣適用于 delphi 遠程調試 教程轉載于:https://www.cnblogs.com/LittleTiger/p/5039245.html

JS關閉瀏覽器 (不彈出提示框)

如果網頁不是通過腳本程序打開的(window.open()),調用window.close()腳本關閉窗口前,必須先將window.opener對象置為null,否則瀏覽器(IE7、IE8)會彈出一個確定關閉的對話框。<script…

天大18年c語言離線作業,天大18秋C語言程序設計在線作業一輔導資料.docx-資源下載在線文庫www.lddoc.cn...

天大18秋《C語言程序設計》在線作業一輔導資料.docx天大 18 秋C 語言程序設計 在線作業一1、C 2、D 3、D 4、D 5、D 一、單選題共 40 題,100 分1、設有int a 31,0,3,3,4,5,6,7;,則 a21的值是 A3B5C6D4正確答案是C2、設 int a21,b021; 語句 printf“x,dn”,a,b;的輸出…

AM335x(TQ335x)學習筆記——GPIO關鍵驅動移植

或按照S5PV210學習秩序。我們首先解決的關鍵問題。TQ335x有六個用戶按鈕,每個上、下、剩下、對、Enter和ESC。我想開始學習S5PV210當同一,寫輸入子系統驅動器的關鍵問題要解決,但瀏覽driver/input/keyboardgpio-keys.c,大體上看下…

程序員偷偷深愛的9個不良編程習慣

新媒體管家下面這9個編碼習慣,雖然在編程規則中是被駁斥的,但我們很多人就是會不由自主地使用它們。我們曾經都做過這樣的事情:當媽媽不注意的時候,偷偷地吃糖果零食,然后導致有了蛀牙。同樣的,我們都違背過…

emacs c語言 自動補全,Emacs 與 C/C++ 代碼自動補全

基于 Emacs 的 company 模式并配合 semantic 文法分析器,實現 Emacs 的 C/C 代碼自動補全。關于 Emacs 的代碼自動補全代碼自動補全的功能,對于使用 Emacs 寫代碼的程序員而言其重要性不言而喻的,但是搜了一些所謂的 “Emacs 完美的 C 自動補…

linux(fedora) 下dvwa 建筑環境

linux(fedora)下dvwa組態 1.下載httpd,dvwa,mysql,mysqlserver, php-mysql,php 除了dvwa 這是外界進入下一官方網站。該服務通過休息install 安裝 yum install httpd, mysql, php-mysql, php 假設出現安裝的問題。能夠先yum search xxx 2.安裝完之后,檢查安裝的狀…

c語言一元二次方程 ii(分支嵌套),C程序設計——求一元二次方程算法

要求:從鍵盤上輸入一元二次方程的三個參數,編程判斷并求一元二次方程的實根(a,b,c均為整數)算法分析:一元二次方程是只含有一個未知數,且未知數的最高次數是二次的多項式方程。一元二次方程經過整理都可化成一般形式axbxc0(a≠0)&…

程序員如何優雅度過一生的15個建議

首先,我要說明一下精彩的職業生涯應該是什么樣。他們不是這樣的一個線性圖形,不是每過一個月你就會有對應的成長。(就算是普通的職業生涯也不會這樣。你不會每個月都有提升。每個月你都會變的好一點,但是每次有提升都是大幅度的&a…

cocos2d-x游戲開發 跑酷(四) 關聯與物理世界

原創。轉載注明出處http://blog.csdn.net/dawn_moon/article/details/21451077 前面一節盡管實現了一個跑動的人物,可是他只不過一個精靈在運行一個跑動的幀動畫而已。這一節我要實現精靈和物理世界關聯。讓這個人跟實際的Parkour一樣,有實際體積&#x…

kmp算法的c語言,KMP算法 純C實現

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓我自己寫的KMP算法:int nt[256];void get_next1(char* T, int next[], int tlen){int i 0;int j 1;next[0] -1;while( j {if ( T[i] T[j] ){next[j] 0;i;}else{next[j] i;i 0;}j;}}int Index_KMP1(char* S, cha…

MyBatis多條件查詢

1.MyBatis多條件查詢1.1&#xff1a;使用實體類 將參數封裝成對象接口&#xff1a;public List<User> getUserListByUser(User user);Mapper映射文件&#xff1a;<select id"getUserListByUser" resultType"User" parameterType"User"…

android 定位 廣播,android - 如何觸發廣播接收器在GPS開啟/關閉? - SO中文參考 - www.soinside.com...

如何觸發廣播接收器在GPS開啟/關閉&#xff1f;問題描述 投票&#xff1a;35回答&#xff1a;5public class BootReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().matches("android.locatio…

sphinx數據文件簡析

Sphinx使用的文件包括 “sph”&#xff0c; “spa”&#xff0c; “spi”&#xff0c; “spd”, “spp”&#xff0c; “spm” &#xff0c;還有鎖文件&#xff08;.spl&#xff09;。其中sph是系統的配置文件。其它則為索引文件。 l Spi 文件&#xff1a;保存WordId及指向此Wo…

收集一些常用的正則表達式

1 . 校驗密碼強度密碼的強度必須是包含大小寫字母和數字的組合&#xff0c;不能使用特殊字符&#xff0c;長度在8-10之間。^(?.*\\d)(?.*[a-z])(?.*[A-Z]).{8,10}$2. 校驗中文字符串僅能是中文。^[\\u4e00-\\u9fa5]{0,}$3. 由數字、26個英文字母或下劃線組成的字符串^\\w$4.…

C#實現圖片的無損壓縮

/// <summary>/// 圖像縮略圖處理/// </summary>/// <param name"bytes">圖像源數據</param>/// <param name"compression">壓縮質量 1-100</param>/// <param name"thumbWidth">縮略圖的寬</para…