網頁簡單佈局之結構與表現原則案例

来源:https://www.cnblogs.com/dhnblog/archive/2020/03/19/12523760.html
-Advertisement-
Play Games

一開始我們接觸網頁製作的時候,就瞭解到html代表結構、css代表樣式、javascript代表行為,網頁製作中,我們一直強調結構與表現相分離的原則,這裡面的結構一般指HTML,此外分離是說把它們寫在不同的文件加以引用嗎?當然不是,在這裡的學習中瞭解到,分離不單是一種方法更是一種思想,簡而言之,一個... ...


一開始我們接觸網頁製作的時候,就瞭解到html代表結構、css代表樣式、javascript代表行為,網頁製作中,我們一直強調結構與表現相分離的原則,這裡面的結構一般指HTML,此外分離是說把它們寫在不同的文件加以引用嗎?當然不是,在這裡的學習中瞭解到,分離不單是一種方法更是一種思想,簡而言之,一個平面二維坐標,其中x軸代表技術發展,y軸代表網頁製作需求,分離就是根據根據技術發展和我們的網頁製作需求完成的!

舉例:比方說我們蓋房子,html就相當房子的結構,css相當於後期的裝修,網頁都是基於一張效果來完成的,在我們瀏覽網頁的時候,根據效果圖不同,樣式不同,所以我們瀏覽的頁面是五花八門的,那麼我們如何來佈局好網頁?首先不要考慮過多的css樣式,儘量讓我們的html結構合理簡潔和語義化,然後再添加完善css樣式!

當我們拿到頁面時,不同的製作者對結構結構樣式有不同的鏈接,根據這個結構樣式瞭解深度的不同,暫定劃分為:初級、中級、高級三個不同的層次;

比方說這樣一個常見的對話框,有3個單元,首先我們需要完成一個單元,另外的進行CTRL+V;如果是初級製作者拿到頁面後,一般按照上面的方框進行劃分,一個大的div裡面包含2個小的div,左右浮動,左側放img,右側放p,h等標簽,至於時間因數通過 position屬性定位實現,那下麵就用代碼說明下

 1 <div class="demo1">
 2             <div class="fl">
 3                 <img src="../../images/head02.jpg" alt="">
 4             </div>
 5             <div class="fr">
 6                 <span>10分鐘前</span>
 7                 <h6>漸行漸遠漸無書</h6>
 8                 <p>
 9                 你是不是每天腦子裡盤踞許多揮之不去的想法覺得自己很忙,仔細想想又不知道自己真正地在忙些什麼,而養成良好的習慣,照顧好自己,追隨自己的夢想,才能提高生產力,這也意味著改善你與家人和朋友的關係,因為當你改變時,你周圍的一切都改變了,高效能的人有哪些習慣值得我們學習?    
10                 </p>
11             </div>
12         </div>
13         <div class="demo2">
14                 <img src="../../images/head02.jpg" alt="">
15             <div class="fr">
16                 <span>10分鐘前</span>
17                 <h6>漸行漸遠漸無書</h6>
18                 <p>
19                 你是不是每天腦子裡盤踞許多揮之不去的想法覺得自己很忙,仔細想想又不知道自己真正地在忙些什麼,而養成良好的習慣,照顧好自己,追隨自己的夢想,才能提高生產力,這也意味著改善你與家人和朋友的關係,因為當你改變時,你周圍的一切都改變了,高效能的人有哪些習慣值得我們學習?    
20                 </p>
21             </div>
22         </div>
23         <div class="demo3">
24                 <img src="../../images/head02.jpg" alt="">
25                 <span class="time">10分鐘前</span>
26                 <h6>漸行漸遠漸無書</h6>
27                 <p>
28                 你是不是每天腦子裡盤踞許多揮之不去的想法覺得自己很忙,仔細想想又不知道自己真正地在忙些什麼,而養成良好的習慣,照顧好自己,追隨自己的夢想,才能提高生產力,這也意味著改善你與家人和朋友的關係,因為當你改變時,你周圍的一切都改變了,高效能的人有哪些習慣值得我們學習?    
29                 </p>
30             </div>
31         </div>

 =>3個不同的demo代表3種不同的頁面結構||書寫頁面結構公共部分展示:

 1 /*reset*/
 2         body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin: 0;padding: 0;list-style: none;font:12px/1.5 "Arial", "sans-serif", "微軟雅黑", "宋體", "Tahoma"}
 3         
 4         /*公共樣式*/
 5         .demo1,.demo2{
 6             width: 600px;
 7             margin-top: 20px;
 8             overflow: hidden;
 9             margin-bottom: 20px;
10         }
11         p{
12             text-align: justify;
13             text-indent: 2em;
14             line-height: 24px;
15         }

 =>初級製作者css

 1 /*初級*/
 2         .demo1{
 3             width: 600px;
 4             margin-top: 20px;
 5             overflow: hidden;
 6         }
 7         .demo1 .fl{
 8             width: 100px;
 9             float: left;
10         }
11         .demo1 .fl img{
12             margin-left: 20px;
13             padding: 10px;
14             border: 1px solid #ccc;
15         }
16         .demo1 .fr{
17             width:488px;
18             float: right;
19             border: 1px solid #ccc;
20             position: relative;
21             padding: 5px;
22         }
23         .demo1 .fr span{
24             position: absolute;
25             right:18px;
26             top: 5px;
27         }    

 =>中級製作者css,相較於初級進行了結構簡化,去掉了左側的div,保留了右邊的部分;

 1 /*中級*/
 2         .demo2 .fr{
 3             width:488px;
 4             float: right;
 5             border: 1px solid #ccc;
 6             position: relative;
 7             padding: 5px;
 8         }
 9         .demo2 .fr span{
10             position: absolute;
11             right:18px;
12             top: 5px;
13         }
14         .demo2 img{
15             margin-left: 20px;
16             padding: 10px;
17             border: 1px solid #ccc;
18         }

  =>高級製作者css:先按照結構和語義編寫代碼,然後再進行css樣式設置,減少了css與html的契合度(文檔移動,圖像移出,定位屬性)

 1 /*高級*/
 2         .demo3{
 3             border: 1px solid #ccc;
 4             width: 488px;
 5             margin-left: 100px;
 6             padding: 5px;
 7             position: relative;
 8         }
 9         .demo3 img{
10             float: left;
11             margin:-6px 0 0 -86px;
12             padding: 10px;
13             border: 1px solid #CCCCCC;
14         }
15         .demo3 span{
16             position: absolute;
17             top: 10px;
18             right: 20px;
19         }

結論:拿到一張網頁設計圖的時候,首先要觀察文字和內容模塊之間的關係,重點放在編寫語義化html代碼上,而不要過多地考慮設計間的佈局樣式,等到html代碼編輯完成,再考慮如何實現,力求在不改變現有頁面結構的基礎上完成設計圖稿要求呈現的視覺效果!(點擊下載完整網頁簡單佈局之結構與表現原則代碼)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 下載 鏈接:https://pan.baidu.com/s/1DpBiI3ZBXVDnFxRxPxnpKg 提取碼:9mcv 一、Oracle11gR2(64位)安裝配置 1、下載後,同時選擇兩個壓縮文件進行解壓,得到安裝程式文件夾; 2、進入安裝文件夾,指定stepup.exe: (1)配置安全更 ...
  • 前言 Redis 5 新特性中,Streams 數據結構的引入,可以說它是在本次迭代中最大特性。它使本次 5.x 版本迭代中,Redis 作為消息隊列使用時,得到更完善,更強大的原生支持,其中尤為明顯的是持久化消息隊列。同時,stream 借鑒了 kafka 的消費組模型概念和設計,使消費消息處理上 ...
  • 註意:無特殊說明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 showDialog showDialog 用於彈出Material風格對話框,基本用法如下: 效果如下: 通常返回 組件,比如 和`AlertDialog` ...
  • 由於2018年發佈的Android P限制了非加密的流量請求導致出現 not permitted by network security policy 解決辦法如下: ①在res文件中添加xml的文件夾🗡 在xml中在添加名稱為: network_security_config.xml 文件 ②在 ...
  • 一、如何編輯出一個正方體 上後下前的順序編寫,最後在寫左右 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>D184_3DTransformCube</title> <style> *{ margin:0; ...
  • 一、取消a標簽在移動端點擊時的藍色 a{ -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-user-select: none; -moz-user-focus: none; -moz-user-select: none; } ...
  • 即使使用 *{margin: 0;padding: 0;} 這樣的代碼重置了瀏覽器預設樣式 類似<a>標簽這種inline-block元素,它們之間還是存在著留白和間距。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> < ...
  • swiper2.0和3.0的區別: 3.0支持部分PC端瀏覽器 3.0合併js,新增動畫功能animate.css 3.0繼續更新,2.7.6停止更新 html結構: <div class="swiper-container"> <div class="swiper-wrap"> <div clas ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...