久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Flex 布局項目實戰(zhàn),,好像沒那么難!

 F2967527 2023-10-20 發(fā)布于北京

圖片

大家好,,我是樹哥,。

在上篇文章《別再用 float 布局了,flex 才是未來,!》中,,我們聊到 Flex 布局才是目前主流的布局方式。在文章最后,,我們還貼了一個案例,,并且還淺淺地講解了一下。

有些小伙伴說,,這講解得太粗了,,要是能夠再深入講解一下,順便把代碼分享分享就好了,。那么,,今天我們就繼續(xù)來扒一扒這個項目的布局實現(xiàn)。

大體框架實現(xiàn)

這個項目是我在 CodePen 上找到的一個項目,,地址是:Glassmorphism Creative Cloud App Redesign,,其頁面如下圖所示。

圖片
-w1327

從上圖可以看得出來,,其布局還是非常清晰明了的,。其最外層包括一個頂部的導(dǎo)航欄和一個下面的內(nèi)容區(qū)域,用 html 描述大致是下面的代碼,。

<div class='app'>
    <div class='header'</div> 
    <div class='wrapper'>/div>
</div>

如上面代碼所示的布局,,我們用 Flex 布局來寫,大致就是如下代碼所示,。

.app {
  display: flex;
  flex-direction: column;
  background-colorvar(--theme-bg-color);
  max-width1250px;
  max-height860px;
  width100%;
  height90vh;
  overflow: hidden;
  position: relative;
  font-size15px;
  font-weight500;
  border-radius14px;
  backdrop-filterblur(20px);
  -webkit-backdrop-filterblur(20px);
}

.header {
  display: flex;
  height58px;
  padding0 30px;
  background-color: black;
}

.wrapper {
  display: flex;
  flex1;
  background-color: red;
  overflow: hidden;
}

加了上面的樣式代碼之后,整體的效果就變成了如下圖的樣式,。

圖片
-w1116

此時去拖動窗口大小,,會發(fā)現(xiàn)紅色背景的內(nèi)容部分是會自動改變高度的,。

接下來,我們繼續(xù)分析剩下的內(nèi)容,。

對于導(dǎo)航欄而言,,我們也可以把它看成是一個 Flex 容器,其內(nèi)部劃分為 4 個元素,。我加上這部分的代碼內(nèi)容之后,,整體的 html 代碼如下所示。

<div class='app'>
  <div class='header'>
    <div class='menu-circle'></div>
    <div class='header-menu'></div>
    <div class='search-bar'></div>
    <div class='header-profile'></div>
  </div>
  <div class='wrapper'>
    
    </div>
  </div>
</div>

此時,,我們再加上導(dǎo)航欄這部分的 CSS 樣式,,如下代碼所示。


.menu-circle {
  flex-shrink: 0;
  width: 100px;
  margin-right: 50px;
  background-color: gray;
}

.header-menu {
  flex-shrink: 0;
  width: 400px;
  margin-right: 50px;
  background-color: gray;
}

.search-bar {
  flex-shrink: 0;
  width: 200px;
  margin-right: 50px;
  background-color: gray;
}

.header-profile {
  flex-shrink: 0;
  width: 100px;
  margin-right: 50px;
  background-color: gray;
}

加上之后,,其效果圖如下圖所示,。

圖片
-w1117

到這里,我想你應(yīng)該會發(fā)現(xiàn),,使用 Flex 布局其實就是一層層把內(nèi)容劃分,,然后設(shè)置好合適的 flex 屬性,布局變得非常簡單了,。這里我就不繼續(xù)講解其他區(qū)域的布局代碼了,,我直接將我最終完成的一個布局草稿圖給出來,如下圖所示,。

圖片
-w1093

我們在實際要做的時候,,就是這樣一點點去將需要弄的區(qū)域做出來,接下來就是填上所需要的內(nèi)容,,包括文字,、圖標(biāo)、顏色等等信息,。上面我自己練習(xí)布局的 HTML 和 CSS 代碼都在 CodePen 上,,有興趣的可以參考下:CodePen Home Flex 布局項目實戰(zhàn)。

紙上得來終覺淺,,雖然 Flex 布局簡單,,但也有非常多的實現(xiàn)細(xì)節(jié)需要去琢磨。這里我就不事無巨細(xì)地講解所有的樣式實現(xiàn)了,,我將摘取 5 個比較常見的樣式實現(xiàn)來一步步講解如何實現(xiàn)它們,。這 5 個例子的代碼都放在了 CodePen 上,感興趣的可以自己看看:CSS最佳實踐 - CodePen,。

細(xì)節(jié)實現(xiàn)

扁平化按鈕

首先,,我們將上面的例子整理一下,作為我們的第一個 CSS 最佳實踐,。

要實現(xiàn)如下圖所示的扁平化按鈕,,應(yīng)該怎么寫呢,?

圖片
-w163

實現(xiàn)思路

使用 padding 屬性控制按鈕文字與邊框的距離。

實現(xiàn)步驟

1,、首先,,使用 button 元素來作為按鈕的 html 元素。2,、接著,,使用 padding 屬性來控制按鈕文字與上下左右的距離。3,、最后,,設(shè)置按鈕文字、背景顏色,、背景圓角,、邊框、鼠標(biāo)手勢屬性,。

整體實現(xiàn)代碼:

<div>
  <h1>1. 扁平化圖標(biāo)的實現(xiàn)</h1>
  <div>
    <button class='content-btn'>Start free trial</button>
  </div>
</div>
.content-btn {
    padding8px 26px;
    border: none;
    border-radius20px;
    color#fff;
    background-color#3a6df0;
    cursor: pointer;
}

帶圖標(biāo)的菜單

一個菜單,,左邊有一個圖標(biāo),如下圖所示,,如何實現(xiàn),?

圖片
-w164

核心思路

使用 flex 布局設(shè)置菜單項。將圖標(biāo)與文字放在同一個層級,,使用 flex 布局對齊圖標(biāo)和文字,,設(shè)置 svg 圖標(biāo)的大小。

實現(xiàn)步驟

首先,,使用 a 屬性表示一個菜單,,外層包一個 div 容器,如下代碼所示,。

<div class='side-menu'>
  <a href=''></a>
  <a href=''></a>
</div>

接著,,每一個 a 元素表示一個菜單。在菜單里面,,圖標(biāo)與菜單文字在同一層,,如下代碼所示。

<div class='side-menu'>
  <a href=''>
    <svg></svg>帶圖標(biāo)的菜單1
  </a>
  <a href=''>
    <svg></svg>帶圖標(biāo)的菜單2
  </a>
</div>

接著,,構(gòu)造好 html 層次之后,,可以構(gòu)思 CSS 布局。菜單項(.side-menu)所在容器使用 flex 布局,。

.side-menu {
  display: flex;
  flex-direction: column;
  white-space: no-wrap;
}

最后,,單個菜單(.side-menu a)內(nèi)部則也使用 flex 布局,同時設(shè)置垂直居中對齊,讓圖標(biāo)和文字對齊,。此外,,還為圖標(biāo)設(shè)置大小、懸浮顯示背景顏色等,。相關(guān) CSS 代碼如下所示。

.side-menu a {
    display: flex;
    align-items: center;
    font-weight400;
    font-size14px;
    text-decoration: none;
    padding10px;
    color#000;
    /* 設(shè)置寬度 */
    width150px;
}

.side-menu a:hover {
  background-colorrgba(12 15 25 / 30%);
  border-radius6px;
}

.side-menu svg {
  width16px;
  margin-right8px;
}

完整代碼見:CSS最佳實踐 - 3,、 帶圖標(biāo)的菜單 - CodePen

圖標(biāo)上的紅點提醒

對于許多應(yīng)用來說,,會通過紅點或者未讀數(shù)量來提醒用戶,那么如何實現(xiàn)類似于下圖的提醒呢,?

圖片
-w194

核心思路

使用 relative 或 absolute 布局讓紅點飄到右上角,。其他的樣式思路包括:使用 border-radius 畫一個圓;使用 flex 布局使數(shù)字上下左右居中,。

實現(xiàn)步驟

首先,,在菜單后面加上 span 標(biāo)簽,填入對應(yīng)的內(nèi)容,,如下代碼所示,。

帶圖標(biāo)的菜單<span class='notification-number updates'>3</span>

接著,畫出圓圈以及背景顏色,,以及字體大小顏色,,如下代碼所示。

.notification-number {
  width16px;
  height:16px;
  background-color#3a6df0;
  border-radius50%;
  font-size:10px;
  color#fff;
}

接著,,使用 flex 布局設(shè)置圓圈和字體的上下左右居中對齊,。

.notification-number {
  display: flex;
  align-items: center;
  justify-content: center;
}

最后,使用相對布局調(diào)整圖形圖標(biāo)位置,。

.notification-number {
  position: relative;
  top: -6px;
  right: -6px;
}

到這里,,圖標(biāo)上的紅點提示就完成了。上面這種實現(xiàn)方式是使用 relative 來實現(xiàn)的,,完整代碼見:CSS最佳實踐 -  4,、圖標(biāo)上的紅點提醒(relative實現(xiàn)) - CodePen

實際上,我們也可以使用 absolute 對齊的方式來實現(xiàn),,其完整代碼見:CSS最佳實踐 -  5,、圖標(biāo)上的紅點提醒(absolute實現(xiàn)) - CodePen。

這兩種的區(qū)別在于:它們偏移的參考對象不同,。對于 relative 而言,,其相對于其父級容器偏移。但是 absolute 則是相對于最近的非 static 定位祖先元素的偏移,。

搜索表單

如下圖所示的搜索框,,如何實現(xiàn)?

圖片
-w235

核心思路

使用背景圖以及位置偏移設(shè)置搜索放大鏡圖標(biāo)。

實現(xiàn)步驟

首先,,整理出 html 元素層級,。

<div class='search-bar'>
    <input type='text' placeholder='Search'>
</div>

接著,設(shè)置搜索框大小以及背景,,還有文字字體顏色,。

.search-bar input {
  height40px;
  width150px;
  padding0 20px 0 40px;
  background-color#14162b;
  border-radius5px;
  border: none;
  font-family'Poppins', sans-serif;
  font-size15px;
  font-weight500;
  color#fff;
}

最后,設(shè)置背景圖以及位置,。

.search-bar input {
  background-imageurl('data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www./2000/svg' viewBox='0 0 56.966 56.966' fill='%23717790c7'%3e%3cpath d='M55.146 51.887L41.588 37.786A22.926 22.926 0 0046.984 23c0-12.682-10.318-23-23-23s-23 10.318-23 23 10.318 23 23 23c4.761 0 9.298-1.436 13.177-4.162l13.661 14.208c.571.593 1.339.92 2.162.92.779 0 1.518-.297 2.079-.837a3.004 3.004 0 00.083-4.242zM23.984 6c9.374 0 17 7.626 17 17s-7.626 17-17 17-17-7.626-17-17 7.626-17 17-17z'/%3e%3c/svg%3e');
  background-size14px;
  background-repeat: no-repeat;
  background-position16px 48%;
}

完整代碼見:CSS最佳實踐 - 6. 搜索表單 - CodePen

頂部菜單

要實現(xiàn)如下圖所示的頂部菜單效果,,應(yīng)該如何實現(xiàn)呢?

圖片
20231017211747

核心思路

使用 padding 設(shè)置菜單項帶下,,使用 flex 布局排列菜單項,。

實現(xiàn)步驟

首先,寫好 html 結(jié)構(gòu),,使用 a 元素來實現(xiàn),,如下代碼所示。

<div class='menu'>
<a class='is-active' href='#'>首頁</a>
<a href='#'>投資者關(guān)系</a>
<a href='#'>企業(yè)社會責(zé)任</a>
<a href='#'>加入我們</a>
</div>

接著,,設(shè)置菜單項的樣式,,用 padding 撐開并設(shè)置字體大小,如下代碼所示,。

.menu a {
  display: inline-block;
  padding20px 30px;
  text-decoration: none;
  color: gray;
}

接著,,設(shè)置激活狀態(tài)下的菜單項以及鼠標(biāo)懸浮下的菜單項效果。

.menu a.is-active,
.menu a:hover {
  color: black;
  border-bottom2px solid black;
}

最后,,在頂層容器設(shè)置 flex 布局,,這樣每個菜單項之間就不會有間隙。

.menu {
  display: flex;
  align-items: center;
  flex-shrink0;
}

完整代碼見:CSS最佳實踐 - 7. 頂部菜單 - CodePen

關(guān)于 Flex 布局實戰(zhàn)的分享就到此為止,。希望這篇文章也能給你帶來收獲,,讓你更好掌握 CSS 布局技能。如果這篇文章對你有幫助,,記得一鍵三連支持我,!

參考資料

  • Glassmorphism Creative Cloud App Redesign
  • CodePen Home Flex 布局項目實戰(zhàn)


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多