CSS屬性總結之background

最近在學習css3的一些新屬性,就把一些使用中遇到的方法和問題做一個小結。

background-color

背景顏色在IE7之前只顯示到padding區域,不包含border。而現代瀏覽器background-color都是從border的左上角,到border的右下角。

background-color: rgba(0,255,0,0.5);

background-image

背景圖圖有幾種情況:默認情況下(repeat),會從border區域開始布滿,當然也包含了border區域;

當設置為no-repeat時,是從padding的左上角到border的右下角;

背景圖圖應用:

logo中添加用于SEO的文字

html結構是:h1>a,a中的文字用于搜索,再講a轉塊,轉塊之后就可以設置寬高,這樣就可以看到后面加的背景圖圖了,寬高就等于背景圖圖的寬高,但是搜索的文字會覆蓋在背景圖上,使用text-indent給a一個-999px的值讓文字出去很遠很遠的位置,再給a一個overflow:hidden就可以把文字切掉了。當然,也可以將文字的font-size設為0,但是在IE6、7下會出現不兼容問題,有一小條文字在圖圖上,so用text-indent就好了。

padding區域擠出用來放背景圖

這種方法加圖圖,通常是這個圖圖并不重要,主要用于修飾的時候,重點在文字部分。

為什么要加在padding呢?當想放一張圖圖在盒子中,通常是在no-repeat情況下,那么no-repeat時圖圖可以到padding區域,但是width是用來寫文字的,so就只能加在了padding,具體加在top還是left看具體情況而定。

注意:要設置背景圖,那么盒子必須要有一個寬高,如果是行內那就先轉塊,如果是浮動的那就先清除浮動(清除浮動方法再另外總結)。

在CSS3中可以重復填寫url()實現多背景,既可以這樣寫

background-image: url(), url();
background-position: right bottom, left top;復制代碼

還可以寫成綜合樣式:

background: url() right bottom, url() left top;
復制代碼

新屬性: background-clip

可以控制背景圖圖和背景顏色的繪制范圍。

      :content-box,此時color和image只出現在內容區域(width),不會擴展到padding,更加到不了border了;:padding-box,此時color和image只出現到padding區域,在padding以內繪制;:border-box,看名字就知道可以繪制到border了。
復制代碼

background-clip應用舉例:

在導航欄中,鼠標經過時不看到切換狀態的變化,同時在視覺上分隔每個li的鏈接,使用padding-box聲明,讓背景色只到padding,然后給border設置為transparent(為了顯示后面的其他實色)也可以設置顏色給border,這樣后面的頁面透過邊框可見。

.multi_drop_menu li a {  display:block;border-right-style:solid;Background-clip:padding-box;Text-decoration:none;Color:#555;Background-color:#eee;Border-width:3px;Border-color:transparent;
}
復制代碼

插播一個background-origin:屬性值和background-clip一樣有三個,分別表示背景圖的原點在content、padding和border區域。

background-position

默認情況下是left top;居左上對齊,此時如果是no-repeat圖圖就只在左上位置,如果是repeat那會以左上頂點為原點向各個方向重復展開;通過設置位置來居左、中、右對齊,center center是以中心為原點,如果no-repeat那么圖圖就居中,repeat就會以最中心的圖圖為原點向各個方向展開來。 特殊情況是當背景圖片的size大于盒子的邊界,還是可以設置對齊位置,但是此時image不論是否設置了no-repeat都會擴展到border下面。

  • 應用在body或盒子的大背景,position:center top;

  • banner通欄,width:100%; position:center top;

像素表示法:兩個屬性值都是用px為單位的數值表示。

  • 第一個值:數值是幾,表示圖片的左上角距離border以內的左上角,水平位移多少距離。
  • 第二個值:數值是幾,表示圖片的左上角距離border以內的左上角,垂直位移多少距離。

像素表示法的兩個屬性值區分正負,正負值表示移動的方向不同。

  • 正數:圖片的左上角相對于盒子border以內的左上頂點,向右、向下移動。
  • 負數:圖片的左上角相對于盒子border以內的左上頂點,向左、向上移動。

像素定為法可以應用在sprite圖圖找圖上,所以,怎么擺放精靈圖就是一件要提前算計好的了,如果盒子在頁面左邊,那在sprite里面放在右邊,這樣右邊寬一些也不會有其他圖圖出現,相反盒子在頁面右邊就放在sprite的左側。

還有一種百分比的表示方法,

  • 0% 0%相當于left top;50% 50%相當于center center;
  • 100% 100%相當于將圖圖右下角對齊到了border內側的右下角。一種簡單的計算方法就是找出100% 100%對應的像素值,其他值再按照百分比計算出像素值再去定位,100%=盒子width + paddind - 圖圖width

注意: 修改background屬性時,使用單一屬性層疊,若使用綜合屬性則其他屬性不變,只改變需要修改的,在使用綜合屬性時,要特別注意position后面兩個值得順序!

background-attachment :

scroll
fixed
復制代碼

設置背景圖是否隨著頁面滾動而滾走,默認scroll隨著盒子滾動跟著走,fixed不隨著滾,永遠固定在瀏覽器窗口的某個位置,注意在小盒子內部使用fixed定位之后,參考點將從border的內左上點,變成瀏覽器窗口的左上頂點,,此時上面框里面的背景圖相對于browser的左上頂點定位,頁面滾動他也不后跟著滾,如果第一個box滾上去出了頁面,那么圖圖也將被其他盒子擋住了,因為背景圖就是在盒子下層在背景色上層的。

新屬性:background-image 背景圖漸變

漸變分兩種,linear-gradient (線性漸變)和 radial-gradient (放射性漸變,從一點向四周發散)。

  • background:linear-gradient(red,blue); 背景顏色從紅色到藍色的漸變;
  • background:linear-gradient(to right,red,blue); 背景顏色從紅色到藍色的漸變;
  • background:linear-gradient(-45deg,red,blue); 背景顏色把起點從默認的中上設定到了左上。

比如淘寶搜索框的漸變色:

.search ul li.active a{background: linear-gradient(to right, #FF8F00, #FF5300);color: #fff;font-weight: bold;border-radius: 5px 5px 0 0;}
復制代碼

新屬性:background-size

背景尺寸是CSS3規定的屬性,用來控制背景圖圖的size:

  • 50%:縮放圖圖,讓圖圖填充背景區的一半;
  • 100px 50px; 把圖圖調整到固定的寬高;
  • cover;拉大圖片,讓圖圖完全填滿背景區,保持寬高比;等價于background-size: 100% auto;
  • contain;縮放圖圖,讓圖圖恰好適合背景區,保持寬高比。等價于background-size: auto 100%;

注意不要把圖圖拉的太大,會造成失真!

應用舉例:在精靈圖中想要放大或者縮小其中某一個圖

將容納背景圖的盒子的寬高相應的x2,同時,背景定位的位置值x2,背景size也同時x2,即可實現精靈圖中選中的圖放大兩倍效果。 如果只是直接應用backg-size只會改變背景圖也就是整張精靈圖的size。

轉載于:https://juejin.im/post/5a3c6888f265da433470181b

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

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

相關文章

官宣!微軟發布 VS Code Server!

北京時間 2022 年 7 月 7 日,微軟在 VS Code 官方博客中宣布了 Visual Studio Code Server!遠程開發的過去與未來2019 年,微軟發布了 VS Code Remote,開啟了遠程開發的新時代!2020 年,微軟發布了 GitHub Co…

iis管理常用命令 創建IIS站點 應用應用程序 及虛擬目錄

::防止中文輸出亂碼 chcp 65001::臨時設置PATH set PATH%SystemRoot%\system32\inetsrv;%PATH% ::列出所有站點 appcmd list site::站點名稱 set sitename"WisdomEducation"::綁定域名和端口號 set domain"http/*:8080:,https/*:8443:"::網站源文件物理路徑…

【QGIS入門實戰精品教程】4.4:QGIS如何將點自動連成線、線生成多邊形?

個人簡介:劉一哥,多年研究地圖學、地理信息系統、遙感、攝影測量和GPS等應用,精通ArcGIS等軟件的應用,精通多門編程語言,擅長GIS二次開發和數據庫系統開發,具有豐富的行業經驗,致力于測繪、地信、數字城市、資源、環境、生態、國土空間規劃、空間數字建模、無人機等領域…

.NET7之MiniAPI(特別篇) :Preview6 緩存和限流

前幾在用MiniAPI時還想沒有比較優雅的緩存,這不,Preivew6就帶來了。使用起來很簡單,注入Sevice,引用中間件,然后在Map方法的后面跟CacheOutput()就ok了,CacheOutpu也有不同的參數,可以根據每個方…

藍橋杯C1

轉一篇寫的炒雞棒的博客。講了表達式求值和詞法分析。 http://blog.csdn.net/StevenKyleLee/article/details/43099789 轉載于:https://www.cnblogs.com/wangkaipeng/p/6343204.html

曾鳴:未來十年,將確定智能商業的格局|干貨

2019獨角獸企業重金招聘Python工程師標準>>> 20年來風云變幻,潮起潮涌,我自己最深的一個感受,是對“勢”這個字的理解。 第一,敬畏。對于商業規律和對大勢的把握,很容易在三五年內決定一個企業的命運。 第二…

Jedis 設置key的超時時間

一分鐘之內只能發送一次短信, 若用戶刷新頁面,然后輸入原來的手機號,則繼續計時 方案:服務器端要記錄時間戳 方法名:sMSWaitingTime 功能:返回倒計時剩余時間,單位秒 Java代碼 /*** * 倒計時還剩余多長時間 * param mobile : 手機號 * return : second */…

[轉]IIS7全新管理工具AppCmd.exe的命令使用

IIS 7 提供了一個新的命令行工具 Appcmd.exe,可以使用該工具來配置和查詢 Web 服務器上的對象,并以文本或 XML 格式返回輸出。 下面是一些可以使用 Appcmd.exe 完成的任務的示例: ?創建和配置站點、應用程序、應用程序池和虛擬目錄。 ?停止…

【QGIS入門實戰精品教程】4.1:QGIS柵格數據地理配準完整操作流程

推薦閱讀:ArcGIS地理配準完整操作步驟 文章目錄 一、安裝地理配準插件二、準備實驗數據三、配準操作流程1. 添加柵格數據2. 添加地面控制點3. 配準設置4. 開始配準5. 精度評價一、安裝地理配準插件 點擊下拉菜單【插件】→【管理并安裝插件】,如下圖所示: QGIS默認已經安裝…

聊聊 C++ 中的幾種智能指針 (上)

一:背景 我們知道 C 是手工管理內存的分配和釋放,對應的操作符就是 new/delete 和 new[] / delete[], 這給了程序員極大的自由度也給了我們極高的門檻,弄不好就得內存泄露,比如下面的代碼:void test() {int* i new i…

【Android 學習】深入理解Handler機制

版權聲明:本文為博主原創文章,轉載請注明出處http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/51355051 Android 提供了Handler和Looper來來滿足線程間的通信,而前面我們所說的IPC指的是進程間的通信。…

第五天個人總結

1.昨天做了什么 頁面完善 2.今天要做什么 暫未知轉載于:https://www.cnblogs.com/sunshine-z/p/8298895.html

【QGIS入門實戰精品教程】4.3:QGIS屬性表按字段鏈接外部屬性數據

屬性數據是GIS空格數據的重要組成部分。屬性數據采集的基本操作由于地理實體(如建筑物) 位于地塊之內成者與地塊有關(如道路),因此,描述地理實體的屬性數據和描述地塊實體與地理實體之間關系的屬性數強大多數都是土地信息的范疇土地空間數據庫的屬性教據主要是用來描述空間目…

解決 Cmder 的光標跟文字有個間距 及常用配置

具體的方法: 菜單 > SettingStartup > Environment set PATH%ConEmuBaseDir%\Scripts;%PATH% set LANGzh_CN.UTF8 chcp 65001 如果無效:在 Cmder 下的 verndor 目錄里,修改 clink.lua 文件大約40和46行,把符號 λ 改為 # …

32 commons-lang包學習

maven依賴 <dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>2.6</version></dependency>一、DateUtils類1、日期比較 public static boolean isSameDay(Date date1, Date date2)&…

做一個高德地圖的 iOS / Android .NET MAUI 控件系列 - 創建控件

我們知道 MAUI 是開發跨平臺應用的解決方案 &#xff0c;用 C# 可以直接把 iOS , Android , Windows , macOS , Linux ,Tizen 等應用開發出來。那我們在這個框架除了用底層自定義的 UI 控件外&#xff0c;如果我們要用如高德地圖這樣的第三方控件&#xff0c;要如何做呢&#x…

flask中的session,render_template()第二和參數是字典

1. 設置一個secret_key 2.驗證登入后加上session,這是最簡單,不保險 . 3.注意render_template傳的參數是字典 轉載于:https://www.cnblogs.com/cuzz/p/8087844.html

統一設置網站html文件輸出編碼為utf-8,以解決亂碼問題

如果設置整站&#xff0c;就在根目錄web.config設置如下參數&#xff0c;如果是指定目錄&#xff0c;在該目錄下的web.config文件設置如下參數&#xff0c;如果沒有web.config文件&#xff0c;可以直接新建一個&#xff1a; <?xml version"1.0" encoding"…

失敗記錄兩則

一&#xff0c;未找出為什么有的CPU應用超高&#xff0c;而另一些CPU靜靜啥也不干。可能是將JOB的優先級設置低了&#xff1f; 二&#xff0c;給BOSS的三星I9300線刷港版ROM失敗。可能文件壞&#xff0c;最可能數據線不是原裝&#xff1f;

【QGIS入門實戰精品教程】1.1:QGIS與GIS的區別和聯系

「劉一哥GIS」系列專欄《QGIS入門實戰精品教程(配套案例數據)》目錄 1. QGIS概述 QGIS(在2.0版本之前稱之為Quantum GIS)于2002年由Gary Sherman創立,在2007年由OSGeo接管,并于2009年發布了1.0版本,目前最高版本為3.22。QGIS采用開源證書GNU GPLv2 (GNU General Public…