整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML DIV+CSS 命名規范大全

          :點擊上方"藍色字體"↑ 可以訂閱噢!

          摘要 51RGB官方微信

          網頁制作中規范使用DIV+CSS命名規則,可以改善優化功效特別是團隊合作時候可以提供合作制作效率,具體DIV CSS命名規則CSS命名大全內容篇。

          常用DIV+CSS命名大全集合,即CSS命名規則

          我們開發CSS+DIV網頁(Xhtml)時候,比較困惑和糾結的事就是CSS命名,特別是新手不知道什么地方該如何命名,怎樣命名才是好的方法。

          一、命名規則說明

          1、所有的命名最好都小寫

          2、屬性的值一定要用雙引號("")括起來,且一定要有值如 class="helloweb" , id="helloweb"

          3、每個標簽都要有開始和結束,且要有正確的層次,排版有規律工整

          4、空元素要有結束的tag或于開始的tag后加上"/"

          5、表現與結構完全分離,代碼中不涉及任何的表現元素,如:style、font、bgColor、border 等

          6、<h1>到<h6>的定義,應遵循從大到小的原則,體現文檔的結構,并有利于搜索引擎的查詢。

          7、給每一個表格和表單加上一個唯一的、結構標記 id

          8、給圖片加上alt 標簽,優點是在于在圖片發生錯誤時,alt 可以體現給用戶

          9、盡量使用英文命名原則

          10、盡量不縮寫,除非一看就明白的單詞

          下面給大家介紹常見CSS命名和DIV CSS命名方法。

          二、相對網頁外層重要部分CSS樣式命名

          外套 wrap ------------------用于最外層

          頭部 header ---------------用于頭部

          主要內容 main ------------用于主體內容(中部)

          左側 main-left -------------左側布局

          右側 main-right -----------右側布局

          導航條 nav -----------------網頁菜單導航條

          內容 content --------------用于網頁中部主體

          底部 footer -----------------用于底部

          三、DIV+CSS命名參考表

          以下為CSS樣式命名與CSS文件命名參考表,DIV CSS命名集合:

          CSS樣式命名說明
          網頁公共命名
          #wrapper頁面外圍控制整體布局寬度
          #container或#content容器,用于最外層
          #layout布局
          #head, #header頁頭部分
          #foot, #footer頁腳部分
          #nav主導航
          #subnav二級導航
          #menu菜單
          #submenu子菜單
          #sideBar側欄
          #sidebar_a, #sidebar_b左邊欄或右邊欄
          #main頁面主體
          #tag標簽
          #msg #message提示信息
          #tips小技巧
          #vote投票
          #friendlink友情連接
          #title標題
          #summary摘要
          #loginbar登錄條
          #searchInput搜索輸入框
          #hot熱門熱點
          #search搜索
          #search_output搜索輸出和搜索結果相似
          #searchBar搜索條
          #search_results搜索結果
          #copyright版權信息
          #branding商標
          #logo網站LOGO標志
          #siteinfo網站信息
          #siteinfoLegal法律聲明
          #siteinfoCredits信譽
          #joinus加入我們
          #partner合作伙伴
          #service服務
          #regsiter注冊
          arr/arrow箭頭
          #guild指南
          #sitemap網站地圖
          #list列表
          #homepage首頁
          #subpage二級頁面子頁面
          #tool, #toolbar工具條
          #drop下拉
          #dorpmenu下拉菜單
          #status狀態
          #scroll滾動
          .tab標簽頁
          .left .right .center居左、中、右
          .news新聞
          .download下載
          .banner廣告條
          電子貿易相關
          .products產品
          .products_prices產品價格
          .products_description產品描述
          .products_review產品評論
          .editor_review編輯評論
          .news_release最新產品
          .publisher生產商
          .screenshot縮略圖
          .faqs常見問題
          .keyword關鍵詞
          .blog博客
          .forum論壇
          CSS文件命名說明
          master.css,style.css主要的
          module.css模塊
          base.css基本共用
          layout.css布局,版面
          themes.css主題
          columns.css專欄
          font.css文字、字體
          forms.css表單
          mend.css補丁
          print.css打印

          CSS命名其它說明:

          DIV+CSS命名小結:無論是使用“.”(小寫句號)選擇符號開頭命名,還是使用“#”(井號)選擇符號開頭命名都無所謂,但我們最好遵循,主要的、重要的、特殊的、最外層的盒子用“#”(井號)選擇符號開頭命名,其它都用“.”(小寫句號)選擇符號開頭命名,同時考慮命名的CSS選擇器在HTML中重復使用調用。

          通常我們最常用主要命名有:wrap(外套、最外層)、header(頁眉、頭部)、nav(導航條)、menu(菜單)、title(欄目標題、一般配合h1\h2\h3\h4標簽使用)、content (內容區)、footer(頁腳、底部)、logo(標志、可以配合h1標簽使用)、banner(廣告條,一般在頂部)、copyRight(版權)。其它可根據自己需要選擇性使用。

          建議:主要的、重要的、最外層的盒子用“#”(井號)選擇符號開頭命名,其它都用“.”(小寫句號)選擇符號開頭命名。

          2.CSS樣式文件命名如下:

          主要的 master.css

          布局,版面 layout.css

          專欄 columns.css

          文字 font.css

          打印樣式 print.css

          主題 themes.css

          四、英文命名技巧

          如果遇到不常用的,可以借助翻譯工具進行翻譯取其英文命名。

          以上為DIV+CSS的命名規則總結,相信通過規范的CSS 命名會給你以后做網站網頁的維護帶來方便。

          想認識志同道合的朋友一起學習web

          加入我們的學習QQ群 190166743

          豐富的學習資源,周一到周四免費直播公開課

          長按圖片,識別二維碼即可入群

          你可能感興趣的精彩內容

          微信:UI設計自學平臺加關注

          長按關注:《UI設計自學平臺》

          ↓↓↓

          、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?

          (1) 聲明位于文檔中的最前面,處于 標簽之前。告知瀏覽器的解析器,用什么文檔類型 規范來解析這個文檔。

          (2)嚴格模式的排版和 JS 運作模式是 以該瀏覽器支持的最高標準運行。

          (3)在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。

          (4)DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。

          2、行內元素有哪些?塊級元素有哪些?

          (1)CSS規范規定,每個元素都有display屬性,確定該元素的類型,每個元素都有默認的display值, 比如div默認display屬性值為“block”,成為“塊級”元素; span默認display屬性值為“inline”,是“行內”元素。

          (2)行內元素有:a b span img input select strong(強調的語氣) 塊級元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

          3、link 和@import 的區別是?

          (1)link屬于XHTML標簽,而@import是CSS提供的;

          (2)頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載;

          (3)import只在IE5以上才能識別,而link是XHTML標簽,無兼容問題;

          (4)link方式的樣式的權重 高于@import的權重.

          4、瀏覽器的內核分別是什么?

          IE瀏覽器的內核Trident、Mozilla的Gecko、Chrome的Blink(WebKit的分支)、Opera內核原為Presto,現為Blink;

          5、HTML5有哪些新特性?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?

          HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。

          繪畫 canvas 用于媒介回放的 video 和 audio 元素 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失; sessionStorage 的數據在瀏覽器關閉后自動刪除 語意化更好的內容元素,比如 article、footer、header、nav、section 表單控件,calendar、date、time、email、url、search 新的技術webworker, websockt, Geolocation

          6、對語義化如何理解?

          用正確的標簽做正確的事情!

          HTML語義化就是讓頁面的內容結構化,便于對瀏覽器、搜索引擎解析;在沒有樣式CCS情況下也以一種文檔格式顯示,并且是容易閱讀的。搜索引擎的爬蟲依賴于標記來確定上下文和各個關鍵字的權重,利于 SEO。使閱讀源代碼的人對網站更容易將網站分塊,便于閱讀維護理解。

          7、HTML5的離線儲存有幾種方式?

          localStorage長期存儲數據,瀏覽器關閉后數據不丟失;sessionStorage 數據在瀏覽器關閉后自動刪除。

          8、iframe有那些缺點?

          iframe會阻塞主頁面的Onload事件;

          iframe和主頁面共享連接池,而瀏覽器對相同域的連接有限制,所以會影響頁面的并行加載。使用iframe之前需要考慮這兩個缺點。如果需要使用iframe,最好是通過javascript動態給iframe添加src屬性值,這樣可以可以繞開以上兩個問題。

          9、請描述一下 cookies,sessionStorage 和 localStorage 的區別?

          cookie在瀏覽器和服務器間來回傳遞。 sessionStorage和localStorage不會,sessionStorage和localStorage的存儲空間更大;sessionStorage和localStorage有更多豐富易用的接口;sessionStorage和localStorage各自獨立的存儲空間;

          10、CSS 選擇符有哪些?哪些屬性可以繼承?優先級算法如何計算? CSS3新增偽類有那些?

          1.id選擇器( # myid)     2.類選擇器(.myclassname)

          3.標簽選擇器(div, h1, p)    4.相鄰選擇器(h1 + p)

          5.子選擇器(ul < li)      6.后代選擇器(li a)

          7.通配符選擇器( * )     8.屬性選擇器(a[rel = "external"])

          可繼承的樣式: font-size font-family color, UL LI DL DD DT;

          不可繼承的樣式:border padding margin width height ;

          優先級就近原則,同權重情況下樣式定義最近者為準;

          載入樣式以最后載入的定位為準;

          優先級為:

          !important > id > class > tag important 比 內聯優先級高

          11、CSS3新增偽類舉例:

          p:first-of-type 選擇屬于其父元素的首個元素的每個元素。

          p:last-of-type 選擇屬于其父元素的最后元素的每個元素。

          p:only-of-type 選擇屬于其父元素唯一的元素的每個元素。

          p:only-child 選擇屬于其父元素的唯一子元素的每個元素。

          p:nth-child(2) 選擇屬于其父元素的第二個子元素的每個元素。

          :enabled :disabled 控制表單控件的禁用態。

          :checked單選框或復選框被選中。

          12、如何居中div?如何居中一個浮動元素?

          給div設置一個寬度,然后添加margin:0 auto屬性

          div{ width:200px; margin:0 auto; }
          居中一個浮動元素

          確定容器的寬高 寬500 高 300 底層 設置層的外邊距 .div { Width:500px ; height:300px;//高度可以不設 Margin: -150px 0 0 -250px; position:relative;相對定位 background-color:pink;//方便看效果 left:50%; top:50%;}

          列出display的值,說明他們的作用。position的值, relative和absolute定位原點是?

            1.block 象塊類型元素一樣顯示。 none 缺省值。象行內元素類型一樣顯示。 inline-block 象行內元素一樣顯示,但其內容象塊類型元素一樣顯示。 list-item 象塊類型元素一樣顯示,并添加樣式列表標記。

            2. absolute 生成絕對定位的元素,相對于 static 定位以外的第一個父元素進行定位。

            fixed (老IE不支持) 生成絕對定位的元素,相對于瀏覽器窗口進行定位。

            relative  生成相對定位的元素,相對于其正常位置進行定位。

            static 默認值。沒有定位,元素出現在正常的流中 *(忽略 top, bottom, left, right z-index 聲明)。

            inherit 規定從父元素繼承 position 屬性的值。

          13、為什么要初始化CSS樣式?

            因為瀏覽器的兼容問題,不同瀏覽器對有些標簽的默認值是不同的,如果沒對CSS初始化往往會出現瀏覽器之間的頁面顯示差異。當然,初始化樣式會對SEO有一定的影響,但魚和熊掌不可兼得,但力求影響最小的情況下初始化。最簡單的初始化方法就是: * {padding: 0; margin: 0;} (不建議)淘寶的樣式初始化: body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }body, button, input, select, textarea { font:12px/1.5tahoma, arial, /5b8b/4f53; }h1, h2, h3, h4, h5, h6{ font-size:100%; }address, cite, dfn, em, var { font-style:normal; }code, kbd, pre, samp { font-family:couriernew, courier, monospace; }small{ font-size:12px; }ul, ol { list-style:none; }a { text-decoration:none; }a:hover { text-decoration:underline; }sup { vertical-align:text-top; }sub{ vertical-align:text-bottom; }legend { color:#000; }fieldset, img { border:0; }button, input, select, textarea { font-size:100%; }table { border-collapse:collapse; border-spacing:0; }

          14、css定義的權重

          以下是權重的規則:標簽的權重為1,class的權重為10,id的權重為100,以下例子是演示各種定義的權重值:/*權重為1*/div{}/*權重為10*/.class1{}/*權重為100*/#id1{}/*權重為100+1=101*/#id1 div{}/*權重為10+1=11*/.class1 div{}/*權重為10+10+1=21*/.class1 .class2 div{} 如果權重相同,則最后定義的樣式會起作用,但是應該避免這種情況出現

          15、CSS3有哪些新特性?

          CSS3實現圓角(border-radius:8px),陰影(box-shadow:10px), 對文字加特效(text-shadow、),線性漸變(gradient),旋轉(transform) transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋轉,縮放,定位,傾斜 增加了更多的CSS選擇器 多背景 rgba

          16、介紹一下CSS的盒子模型?

          (1)有兩種, IE 盒子模型、標準 W3C 盒子模型;IE的content部分包含了 border 和 pading;

          (2)盒模型: 內容(content)、填充(padding)、邊界(margin)、 邊框(border).

          17.對WEB標準以及W3C的理解與認識?

          標簽閉合、標簽小寫、不亂嵌套、提高搜索機器人搜索幾率、使用外鏈css和js腳本、結構行為表現的分離、文件下載與頁面速度更快、內容能被更多的用戶所訪問、內容能被更廣泛的設備所訪問、更少的代碼和組件,容易維護、改版方便,不需要變動頁面內容、提供打印版本而不需要復制內容、提高網站易用性;

          18.XHTML和HTML有什么區別?

          HTML是一種基本的WEB網頁設計語言,XHTML是一個基于XML的置標語言最主要的不同:

          XHTML 元素必須被正確地嵌套。

          XHTML 元素必須被關閉。標簽名必須用小寫字母。

          XHTML 文檔必須擁有根元素。

          19.Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?

          用于聲明文檔使用那種規范(HTML/XHTML)一般為 嚴格 過度 基于框架的html文檔

          加入XMl聲明可觸發,解析方式更改為IE5.5 擁有IE5.5的bug

          20.行內元素有哪些?塊級元素有哪些?CSS的盒模型?

          塊級元素:div p h1 h2 h3 h4 form ul

          行內元素: a b br i span input select

          Css盒模型:內容,border ,margin,padding

          21.CSS引入的方式有哪些? link和@import的區別是?

          內聯 內嵌 外鏈 導入

          區別 :同時加載前者無兼容性,后者CSS2.1以下瀏覽器不支持

          Link 支持使用javascript改變樣式,后者不可

          22.CSS選擇符有哪些?哪些屬性可以繼承?優先級算法如何計算?內聯和important哪個優先級高?

          標簽選擇符 類選擇符 id選擇符

          繼承不如指定 Id>class>標簽選擇

          后者優先級高

          23.前端頁面有哪三層構成,分別是什么?作用是什么?

          結構層 HTML 表示層 CSS 行為層 js

          24.CSS的基本語句構成是?

          選擇器{屬性1:值1;屬性2:值2;……}

          25.你做的頁面在哪些瀏覽器測試過?這些瀏覽器的內核分別是什么?

          Ie(Ie內核) 火狐(Gecko) 谷歌(webkit) opear(Presto)

          26.寫出幾種IE6 BUG的解決方法

          1. 雙邊距BUG float引起的 使用display
          2. 3像素問題 使用float引起的 使用dislpay:inline -3px
          3. 超鏈接hover 點擊后失效 使用正確的書寫順序 link visited hover active
          4. Ie z-index問題 給父級添加position:relative
          5. Png 透明 使用js代碼 改
          6. Min-height 最小高度 !Important 解決’
          7. select 在ie6下遮蓋 使用iframe嵌套
          8. 為什么沒有辦法定義1px左右的寬度容器(IE6默認的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
          9. ie 6 不支持!important

          27.img標簽上title與alt屬性的區別是什么?

          Alt 當圖片不顯示是 用文字代表。

          Title 為該屬性提供信息

          28.描述css reset的作用和用途。

          Reset重置瀏覽器的css默認屬性 瀏覽器的品種不同,樣式不同,然后重置,讓他們統一

          29.解釋css sprites,如何使用。

          Css 精靈 把一堆小的圖片整合到一張大的圖片上,減輕服務器對圖片的請求數量

          30.瀏覽器標準模式和怪異模式之間的區別是什么?

          盒子模型 渲染模式的不同

          使用 window.top.document.compatMode 可顯示為什么模式

          31.你如何對網站的文件和資源進行優化?期待的解決方案包括:

          文件合并

          文件最小化/文件壓縮

          使用CDN托管

          緩存的使用

          32.什么是語義化的HTML?

          直觀的認識標簽 對于搜索引擎的抓取有好處

          33.清除浮動的幾種方式,各自的優缺點

          1.使用空標簽清除浮動 clear:both(理論上能清除任何標簽,增加無意義的標簽)
          2.使用overflow:auto(空標簽元素清除浮動而不得不增加無意代碼的弊端,,使用zoom:1用于兼容IE)
          3.使用afert偽元素清除浮動(用于非IE瀏覽器)

          34.javascript的typeof返回哪些數據類型

          Object number function boolean underfind
          35.例舉3種強制類型轉換和2種隱式類型轉換?

          強制(parseInt,parseFloat,number)

          隱式(== – ===)
          36.split() join() 的區別

          前者是切割成數組的形式,后者是將數組轉換成字符串
          37.數組方法pop() push() unshift() shift()

          Push()尾部添加 pop()尾部刪除

          Unshift()頭部添加 shift()頭部刪除

          39.IE和DOM事件流的區別

          1.執行順序不一樣、

          2.參數不一樣

          3.事件加不加on

          4.this指向問題

          40.IE和標準下有哪些兼容性的寫法

          Var target = ev.srcElement||ev.target
          41.ajax請求的時候get 和post方式的區別

          一個在url后面 一個放在虛擬載體里面

          有大小限制

          安全問題

          應用不同 一個是論壇等只需要請求的,一個是類似修改密碼的
          42.call和apply的區別

          Object.call(this,obj1,obj2,obj3)
          Object.apply(this,arguments)
          43.ajax請求時,如何解釋json數據

          使用eval parse 鑒于安全性考慮 使用parse更靠譜
          44.閉包是什么,有什么特性,對頁面有什么影響

          閉包就是能夠讀取其他函數內部變量的函數。
          46.添加 刪除 替換 插入到某個節點的方法

          obj.appendChidl()
          obj.innersetBefore
          obj.replaceChild
          obj.removeChild
          47.解釋jsonp的原理,以及為什么不是真正的ajax

          動態創建script標簽,回調函數

          Ajax是頁面無刷新請求數據操作

          48.javascript的本地對象,內置對象和宿主對象

          本地對象為array obj regexp等可以new實例化

          內置對象為gload Math 等不可以實例化的

          宿主為瀏覽器自帶的document,window 等
          50.”==”和“===”的不同

          前者會自動轉換類型

          后者不會
          51.javascript的同源策略

          一段腳本只能讀取來自于同一來源的窗口和文檔的屬性,這里的同一來源指的是主機名、協議和端口號的組合

          54.CSS定位方式有哪些?position屬性的值有哪些?他們之間的區別是什么?
          在CSS中關于定位的內容是:position:relative | absolute | static | fixed
          static 沒有特別的設定,遵循基本的定位規定,不能通過z-index進行層次分級。

          relative 不脫離文檔流,參考自身靜態位置通過 top,bottom,left,right 定位,并且可以通過z-index進行層次分級。

          absolute 脫離文檔流,通過 top,bottom,left,right 定位。選其最近的父級定位元素,當父級 position 為 static 時,absolute元素將以body坐標原點進行定位,可以通過z-index進行層次分級。

          fixed 固定定位,這里他所固定的對象是可視窗口而并非是body或是父級元素。可通過z-index進行層次分級。
          55.函數的幾種定義方法?

          function a(){},
          var a = function(){}
          56.對象的定義方法?

          a = new Object(), a = {}
          57.類的定義方法(prototype)(繼承)

          Var a = function(){}
          a.prototype = {}
          new a();
          58.this 關鍵字的指向

          obj.foo() == obj //方法調用模式,this指向obj
          foo() == window; //函數調用模式,this指向window
          new obj.foo() == obj //構造器調用模式, this指向新建立對象

          foo.call(obj) == obj;//APPLY調用模式,this指向obj
          59.異步ajax的優缺點都有什么?

          優點:

          相對于同步ajax:不會造成UI卡死,用戶體驗好。

          相對于刷新頁面,省流量

          缺點:

          后退按鈕無效;

          多個請求同時觸發時,由于回調時間不確定,會造成混亂,避免這種混亂需要復雜的判斷機制。

          搜索引擎不友好

          數據安全
          60、介紹js的基本數據類型。

          number,string,boolean,object,undefined  

          61、Javascript如何實現繼承?

          通過原型和構造器

          62、如何創建一個對象? (畫出此對象的內存圖)

          function Person(name, age) { this.name = name; this.age = age; this.sing = function() { alert(this.name) } }

          63、談談This對象的理解。

          this是js的一個關鍵字,隨著函數使用場合不同,this的值會發生變化。但是有一個總原則,那就是this指的是調用函數的那個對象。this一般情況下:是全局對象Global。 作為方法調用,那么this就是指這個對象

          64、事件是什么?IE與火狐的事件機制有什么區別? 如何阻止冒泡?

          (1) 我們在網頁中的某個操作(有的操作對應多個事件)。例如:當我們點擊一個按鈕就會產生一個事件。是可以被 JavaScript 偵測到的行為。

          (2) 事件處理機制:IE是事件冒泡、火狐是 事件捕獲;

          (3) ev.stopPropagation();

          65、如何判斷一個對象是否屬于某個類?

          使用instanceof (待完善) if(a instanceof Person){ alert('yes'); }

          66、Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?

          hasOwnProperty

          67、對JSON 的了解?

            JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它是基于JavaScript的一個子集。數據格式簡單, 易于讀寫, 占用帶寬小{'age':'12', 'name':'back'}

          68、簡述一下src與href的區別

          href 是指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,用于超鏈接。

          src是指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置;在請求src資源時會將其指向的資源下載并應用到文檔內,例如js腳本,img圖片和frame等元素。當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源加載、編譯、執行完畢,圖片和框架等元素也如此,類似于將所指向資源嵌入當前標簽內。這也是為什么將js腳本放在底部而不是頭部。

          69、簡述同步和異步的區別

          同步是阻塞模式,異步是非阻塞模式。

          同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那么這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;

          異步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消息返回時系統會通知進程進行處理,這樣可以提高執行的效率。

          70、px和em的區別

          px和em都是長度單位,區別是,px的值是固定的,指定是多少就是多少,計算比較容易。em的值不是固定的,并且em會繼承父級元素的字體大小。

          瀏覽器的默認字體高都是16px。所以未經調整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

          71、什么叫優雅降級和漸進增強?

          漸進增強 progressive enhancement:

          針對低版本瀏覽器進行構建頁面,保證最基本的功能,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。

          優雅降級 graceful degradation:

          一開始就構建完整的功能,然后再針對低版本瀏覽器進行兼容。

          區別:

          a. 優雅降級是從復雜的現狀開始,并試圖減少用戶體驗的供給

          b. 漸進增強則是從一個非常基礎的,能夠起作用的版本開始,并不斷擴充,以適應未來環境的需要

          c. 降級(功能衰減)意味著往回看;而漸進增強則意味著朝前看,同時保證其根基處于安全地帶

          72、瀏覽器的內核分別是什么?

          IE: trident內核

          Firefox:gecko內核

          Safari:webkit內核

          Opera:以前是presto內核,Opera現已改用Google Chrome的Blink內核

          Chrome:Blink(基于webkit,Google與Opera Software共同開發)

          73、如何消除一個數組里面重復的元素?

          var arr1 =[1,2,2,2,3,3,3,4,5,6],
          arr2 = [];
          for(var i = 0,len = arr1.length; i< len; i++){
          if(arr2.indexOf(arr1[i]) < 0){
          arr2.push(arr1[i]);
          }
          }
          document.write(arr2); // 1,2,3,4,5,6

          74、在Javascript中什么是偽數組?如何將偽數組轉化為標準數組?

          偽數組(類數組):無法直接調用數組方法或期望length屬性有什么特殊的行為,但仍可以對真正數組遍歷方法來遍歷它們。典型的是函數的argument參數,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬于偽數組。可以使用Array.prototype.slice.call(fakeArray)將數組轉化為真正的Array對象。

          function log(){

          var args = Array.prototype.slice.call(arguments);

          //為了使用unshift數組方法,將argument轉化為真正的數組

          args.unshift('(app)');

          console.log.apply(console, args);

          };

          75、Javascript中callee和caller的作用?

          caller是返回一個對函數的引用,該函數調用了當前函數;

          callee是返回正在被執行的function函數,也就是所指定的function對象的正文。

          76、請描述一下cookies,sessionStorage和localStorage的區別

          sessionStorage用于本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問并且當會話結束后數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。而localStorage用于持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

          web storage和cookie的區別

          Web Storage的概念和cookie相似,區別是它是為了更大容量存儲設計的。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調用。

          除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務器進行交互,作為HTTP規范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲”數據而生。

          77、手寫數組快速排序

          關于快排算法的詳細說明,可以參考阮一峰老師的文章快速排序

          “快速排序”的思想很簡單,整個排序過程只需要三步:

          (1)在數據集之中,選擇一個元素作為”基準”(pivot)。

          (2)所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。

          (3)對”基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。

          78、統計字符串”aaaabbbccccddfgh”中字母個數或統計最多字母數。

          var str = "aaaabbbccccddfgh";

          var obj = {};

          for(var i=0;istr.length;i++){

          var v = str.charAt(i);

          if(obj[v] & obj[v].value == v){

          obj[v].count = ++ obj[v].count;

          }else{

          obj[v] = {};

          obj[v].count = 1;

          obj[v].value = v;

          }

          }

          for(key in obj){

          document.write(obj[key].value +'='+obj[key].count+' '); // a=4 b=3 c=4 d=2 f=1 g=1 h=1

          }

          79、一次完整的HTTP事務是怎樣的一個過程?

          基本流程:

          a. 域名解析

          b. 發起TCP的3次握手

          c. 建立TCP連接后發起http請求

          d. 服務器端響應http請求,瀏覽器得到html代碼

          e. 瀏覽器解析html代碼,并請求html代碼中的資源

          f. 瀏覽器對頁面進行渲染呈現給用戶

          80、對前端工程師這個職位你是怎么樣理解的?

          a. 前端是最貼近用戶的程序員,前端的能力就是能讓產品從 90分進化到 100 分,甚至更好

          b. 參與項目,快速高質量完成實現效果圖,精確到1px;

          c. 與團隊成員,UI設計,產品經理的溝通;

          d. 做好的頁面結構,頁面重構和用戶體驗;

          e. 處理hack,兼容、寫出優美的代碼格式;

          f. 針對服務器的優化、擁抱最新前端技術。

          載說明:原創不易,未經授權,謝絕任何形式的轉載

          最近的:has()選擇器允許您對父元素和其他祖先應用樣式,本文將向您展示如何在Web應用程序開發中使用它。

          在CSS的世界中,選擇器是驅動我們在網頁上看到的美麗且響應式設計的工作的馬。它們允許開發者根據元素的屬性、位置和關系來選擇和樣式化HTML元素。

          一個較新的CSS選擇器/偽類被稱為 :has ,它允許您選擇每個具有與您提供給 :has() 函數的選擇器匹配的子元素的元素。它在CSS中是一個重要的解決方案,不僅僅是一個簡單的“父級”選擇器。

          使用 :has() 選擇器,您可以將樣式應用于父元素或祖先HTML元素。這樣我們就可以擴展選擇器的范圍,包括一個或多個兄弟或子元素。

          在本文中,我們將討論CSS選擇器以及它們在代碼中的多個使用示例。

          何時使用:has選擇器

          :has() 選擇器是一種CSS偽類,允許您選擇包含特定子元素的元素。它是一個強大的CSS工具,您可以用于以下目的:

          • 為子元素的父元素設置樣式:如果一個 <div> 元素包含一個 <p> 元素,你可以使用 :has() 選擇器來為它設置樣式。
          • 有條件地添加或刪除樣式:如果 <div> 元素包含特定數量的子元素,您可以使用 :has() 選擇器為其添加邊框。
          • 根據內容選擇元素:您可以使用 :has() 選擇器來選擇所有包含具有 "important" 類的子元素的 <div> 元素。

          :has() 選擇器可以與任何有效的CSS選擇器一起使用,包括其他偽類。這使得它成為一個非常多功能的工具,可以以各種方式使用。

          這是一個關于如何使用 :has() 選擇器的小片段

          /* Select all <div> elements that contain a <p> element. */
          div:has(p) {
           background-color: blue;
          }
            
          /* Select all <div> elements that contain a child element with the class "important". */
          div:has(.important) {
           border: 1px solid black;
          }   
          /* Select all <div> elements that contain at least two child elements. */
          div:has(> * + *) {
           padding: 10px;
          }

          上面的代碼展示了如何使用 :has 選擇器的實際示例。但在我們深入使用 :has 選擇器之前,讓我們先來看一下為什么選擇器很重要。

          項目設置

          要開始這個項目,你可以從這個GitHub倉庫克隆起始代碼。完成的倉庫也在這個倉庫中,但你需要使用起始代碼來跟隨本教程。

          https://github.com/joycefoster642/-has-css-project

          上面的圖片展示了我們的項目在瀏覽器上啟動時的樣子。

          注意:該項目只是一個簡單的類似博客的演示,用于展示 :has 偽類的一般用法。

          正向選擇 vs 反向選擇

          以前,開發者只能選擇前進,但是現在有了 :has 選擇器,你現在也可以選擇后退。

          現在,我們要選擇一個元素的父級。過去,通常是這樣做的:

          article + article {
           background-color: pink;
          }

          正如你所注意到的,第二和第三篇文章的顏色發生了變化。這是因為它們相鄰。所以,它選擇了前面而不是后面。現在,讓我們用 :has 選擇器來反向進行操作。

          article:has(+ article) {
           background-color: coral;
          }

          在上面的代碼中,我們只是簡單地說,如果文章有相鄰的文章,選擇前兩篇文章。

          現在,請注意這次選擇了第一篇和第二篇文章。

          基于子元素的選擇

          使用 :has ,我們不僅可以選擇父元素,還可以選擇子元素。

          article:has(span) .bold {
           background-color: lightyellow;
          }
          article:has(span) .italic {
           text-decoration: underline;
          }

          在 index.html 文件中,我們使用 span 為文章2和3應用了一個加粗和斜體的類。在我們的CSS文件中,我們使用 article:has(span) 語法選擇了我們的 span 。以下是結果:

          在這里,您可以看到對第二和第三篇文章中的粗體和斜體應用的更改。我們不僅選擇了文章,還選擇了 span 類別應用的內容。

          使用:has與:not選擇

          在本節中,我們將介紹如何使用 :has 偽類與 :not 。

          article:not(:has(span)) {
           background-color: yellowgreen;
          }

          以下是結果:

          只會改變沒有 span 類的文章。:has 選擇器還支持 0R 邏輯條件。

          article:has(p, .button) {
           background-color: royalblue;
          }

          以下是結果:

          在這里,我們可以選擇一個帶有 OR 的段落的文章,或者選擇一個帶有 button 類的任意文章。這三篇文章被選擇是因為它們都有一個 p 的HTML標簽。但是如果我們移除 p 標簽,只有最后一個帶有“buy now” button 類的文章會保持著顏色。

          :has使用案例和示例

          在本節中,我們將探討使用 :has 選擇器時的更多實際用例和示例。

          導航菜單示例

          這將引導我們進入我們項目的下一部分,它看起來是這樣的:

          在這里,我們將鼠標移到位置上,您可以看到當我們將鼠標懸停在位置上時,我們擁有的不同位置。

          當我們不懸停在位置和員工上時,您會注意到根本沒有任何下拉菜單的指示。如果我們為此使用修飾類,我們將不得不手動進入HTML文件并編寫代碼。然而,我們可以通過 :has 偽類來實現這一點。

          .nav__item:has(.nav__submenu)::after {
           font-family: "Font Awesome 5 Free";
           font-weight: 400;
           content: "\f150";
           margin-left: 1rem;
          }

          在上面的代碼中,我們說,如果 .nav__item 里面有 .nav__submenu ,則只將設計應用于前兩個導航圖標。以下是結果:

          模態示例

          我們可以用JavaScript創建一個模態框,但現在我們也可以使用 :has 選擇器來實現。下面的示例將帶我們進入項目的下一個部分,效果如下:

          當復選框被選中時,沒有任何反應。但是我們可以通過 :has 偽類輕松實現某些操作。

          .awesome:has(.awesome__terms:checked) {
           display: none;
          }

          .awesome 類是我們的模態框。然后我們說如果我們有 .awesome__terms: checked ,再次點擊復選框時讓下一頁顯示出來。

          淺色和深色模式示例

          這是另一個快速示例,展示了如果選中了某個選項,我們可以如何應用它。

          .three:has(.lightswitch:checked) {
           background-color: var(--COLOR);
           color: var(--BGCOLOR);
          }

          一旦我們應用上述代碼并點擊“切換到暗模式”,下面是結果:

          現在,您可以無縫切換淺色和深色模式。

          輸入驗證示例

          我們的最后一個例子將引導我們進入項目的這一部分,看起來像這樣:

          上面的圖像顯示了包含文本“名稱”和文本輸入的 label 。現在,我們要選擇相反的東西。以前,我們只能向前選擇,所以 label 必須在文本 input 之后。現在,我們可以根據 input 中的內容更改 label 。

          <div>
           <label for="name">Name:</label>
           <br />
           <input
             class="name"
             type="text"
             name="name"
             id="name"
             required
             pattern="^\[A-Z\][A-z]{2,}"
           />
          </div>
          

          在我們上面的代碼中,我們對 index.html 應用了一個模式。在這里,我們有一個 required pattern ,其中的正則表達式表示文本必須以大寫字母開頭,并且至少為3個字符。在我們的 style.css 中,我們包含了以下代碼

          label:has(~ .name:valid)::after {
           content: '??';
           color: limegreen;
           margin-left: 1rem;
           font-size: 3rem;
          }

          以下是結果:


          名字“Joyce”符合首字母大寫且最多三個單詞的要求,因此出現了綠色的勾號。

          既然我們已經到了教程的結尾,希望你對 CSS 選擇器/偽類有所了解。

          結論

          CSS :has 選擇器提供了一種創新的方法來解決網頁開發中的復雜樣式挑戰。在本文中,我們探討了這個強大選擇器的功能和潛在用例,它允許我們根據元素的后代來定位目標元素。

          通過利用 :has 選擇器,網頁開發人員可以提高他們的CSS代碼的效率和靈活性,簡化選擇過程,減少不必要的類和嵌套結構的需求。

          這個選擇器使開發人員能夠創建更清晰、更易于維護的代碼,同時保持HTML結構的完整性。

          由于文章內容篇幅有限,今天的內容就分享到這里,文章結尾,我想提醒您,文章的創作不易,如果您喜歡我的分享,請別忘了點贊和轉發,讓更多有需要的人看到。同時,如果您想獲取更多前端技術的知識,歡迎關注我,您的支持將是我分享最大的動力。我會持續輸出更多內容,敬請期待。


          主站蜘蛛池模板: 亚洲一区影音先锋色资源| 亚洲制服中文字幕第一区| 国模精品一区二区三区| 精品一区二区AV天堂| 日韩精品午夜视频一区二区三区| 亚洲国产AV无码一区二区三区 | 亚洲综合无码精品一区二区三区| 视频一区二区精品的福利| 国产一区美女视频| 日本一区午夜爱爱| 国产福利电影一区二区三区久久老子无码午夜伦不| 丰满爆乳无码一区二区三区| 在线电影一区二区三区| 午夜DV内射一区区| 四虎精品亚洲一区二区三区| 精品国产亚洲一区二区在线观看| 精品国产AⅤ一区二区三区4区 | 无码人妻AⅤ一区二区三区| 国产AV一区二区三区传媒| 无码人妻一区二区三区免费n鬼沢| 蜜桃传媒视频麻豆第一区| 亚州日本乱码一区二区三区| 国产乱码一区二区三区四| 黑巨人与欧美精品一区| 国产一区二区三区免费在线观看| 一区视频在线播放| 日韩电影一区二区三区| 无码乱人伦一区二区亚洲一| 国产精品一区视频| 国产精品一区二区香蕉| 精品少妇一区二区三区在线| 无码人妻精品一区二区三18禁 | 精产国品一区二区三产区| 天堂不卡一区二区视频在线观看| 中文字幕一区二区在线播放| 人妻体体内射精一区二区| 成人在线观看一区| 中文字幕一区二区日产乱码| 97精品一区二区视频在线观看| 国产精品亚洲一区二区无码| 国产精品丝袜一区二区三区|