Web第二次方向考核復盤

一、簡答題

1. (1)為什么要清除浮動?

????????答:當子元素浮動時會脫離文檔流,父元素無法正確計算子元素高度導致高度、邊框異常顯示。同時會影響后續文檔流布局。

<style>.box1 {border: solid 2px #000;}.child1 {float: left;height: 200px;width: 200px;background-color: aqua;}.child2 {float: left;height: 200px;width: 200px;background-color: blue;}.box2 {height: 200px;width: 300px;background-color: pink;}</style><body><div class="box1">box1<div class="child1">child1</div><div class="child2">child2</div></div><div class="box2">box2</div>
</body>

1.(2)清除浮動的方法有哪些??

  1. 額外標簽法,給父盒子添加標簽:<div class="clear"></div>>,標簽定義為

    .clear{
    clear:both;
    }

    該標簽必須是塊級元素。清除后,父盒子可以根據子盒子的高度調整高度。

  2. 父級添加-overflow

    overflow:hidden/auto/scroll;

    注意:無法清除溢出部分

  3. after偽元素-額外標簽法升級版

    .clearfix:after{content:"";display: block;height:0;clear:both;visibility:hidden;}
    .clearfix{ /* IE6、7 專有 */   *zoom:1;}

    再給父元素增加類型clearfix即可

  4. 雙偽元素

    .clearfix:before,.clearfix:after {content:"";display:table;}
    .clearfix:after {clear:both;}
    .clearfix {*zoom:1;}

    再給父元素增加類型clearfix即可

2.怎么實現左邊寬度固定右邊寬度自適應的布局?

  1. 傳統布局:左固定高度+右margin(不推薦)
  2. flex布局:給父盒子添加display:flex;屬性,為其左邊的子元素設置好固定寬度,為右邊子元素設置flex:1屬性
  3. grid布局(更現代)

    .container {display: grid;grid-template-columns: 200px 1fr; /* 第一列固定,第二列自適應 */
    }
    .left { background: #f00; }
    .right { background: #0f0; }

3.?講講flex:1;

????????答:flex:1為該項目在含有display:flex屬性的父盒子內,在主軸上在剩余空間(父盒子寬/高-主軸固定寬/高)所占有的份數為1。

<style>.box1 {display: flex;height: 500px;border: solid 2px #000;}.child1 {height: 200px;width: 200px;ackground-color: aqua;}.child2 {height: 200px;flex: 1;background-color: blue;}
</style><body><div class="box1"><div class="child1">child1</div><div class="child2">child2</div></div>
</body>

child1固定寬度,child2占主軸剩余空間1份:?

        .child3{flex:2;height: 200px;background-color: pink;}
<body><div class="box1"><div class="child1">child1</div><div class="child2">child2</div><div class="child3">child3</div></div>
</body>

?child2占據主軸剩余空間1份,child3占據兩份。

4.怎么實現移動端適配不同設備?

方案1:媒體查詢+rem布局

????????1. 設置基準(以750px為例)

????????假設設計稿寬度為?750px,約定?1rem = 100px(LESS)

/* 默認基準(適用于320px~750px屏幕) */
html {font-size: calc(100vw / 7.5); /* 750px設計稿:100px = 1rem */
}

????????2. 媒體查詢

/* 超小屏幕(小于320px) */
@media screen and (max-width: 320px) {html {font-size: 42.6667px; /* 320/7.5 */}
}/* 大屏幕(大于750px)限制最大縮放 */
@media screen and (min-width: 750px) {html {font-size: 100px; /* 固定最大值 */}
}

????????3. 尺寸設置使用rem

.header {height: 0.88rem;  /* 設計稿88px → 0.88rem */font-size: 0.32rem; /* 設計稿32px → 0.32rem */margin: 0 0.2rem;  /* 設計稿20px → 0.2rem */
}
方案2:Viewport單位(vw/vh)(使用LESS)
/* 設計稿750px下:1vw = 7.5px */
.box {width: 13.333vw; /* 100px / 7.5 */font-size: calc(16 / 7.5 * 1vw); /* 16px */
}
方案3:媒體查詢(Media Queries)
@media screen and (max-width: 320px) {body { font-size: 12px; }
}
@media screen and (min-width: 414px) {body { font-size: 18px; }
}

二、實踐題

1.題目:

代碼:?

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.w {margin: 0 auto;}ul {padding: 0;}li {list-style: none;}.box {width: 960px;height: 400px;}header {color: #fff;font-size: 15px;width: 100%;height: 40px;background-color: #313531;border-radius: 6px;line-height: 40px;}.test {float: left;margin-left: 20px;}.imfor ul li {float: right;margin-right: 25px;}section {display: flex;justify-content: space-between;}.content {padding: 15px;background-color: #fff;height: 252px;width: 275px;border-radius: 10px;margin: 20px 0;box-shadow: 1px 2px 5px #9d9d9d;}.pic {box-sizing: border-box;height: 120px;width: 270px;background-color: #c9cdc9;border-radius: 6px;}.word {font-size: 13px;width: 270px;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;line-clamp: 2;overflow: hidden;}.date {margin-top: 10px;font-size: 10px;color: #9d9d9d;}footer {line-height: 49px;text-align: center;width: 100%;height: 49px;background-color: #ecf0ec;border-radius: 12px;color: #898989;font-size: 13px;}</style>
</head><body><div class="box w"><header><div class="test">考核</div><div class="imfor"><ul><li>關于我們</li><li>文章</li><li>首頁</li></ul></div></header><section><div class="content"><div class="pic"></div><h1>標題1</h1><div class="word">這是一段摘要內容,描述當前文章的簡要信息。這是一段摘要內容,描述當前文章的簡要信息。這是一段摘要內容,描述當前文章的簡要信息。</div><div class="date">發布于2026-06-01·閱讀123</div></div><div class="content"><div class="pic"></div><h1>標題1</h1><div class="word">這是一段摘要內容,描述當前文章的簡要信息。這是一段摘要內容,描述當前文章的簡要信息。這是一段摘要內容,描述當前文章的簡要信息。</div><div class="date">發布于2026-06-01·閱讀123</div></div><div class="content"><div class="pic"></div><h1>標題1</h1><div class="word">這是一段摘要內容,描述當前文章的簡要信息。這是一段摘要內容,描述當前文章的簡要信息。這是一段摘要內容,描述當前文章的簡要信息。</div><div class="date">發布于2026-06-01·閱讀123</div></div></section><footer>web第一次方向考核</footer></div>
</body></html>

效果:

注意點:

  1. 頭部盒子使用左右浮動
  2. 中間盒子使用flex布局更易使內容居中對齊
  3. ?文本溢出文字省略號顯示:
    1. 單行
             .word{/*先強制一行內顯示文本*/white-space: nowrap;/*超出部分隱藏*/overflow:hidden;/*省略號代替超出部分*/text-overflow:ellipsis;}
    2. 多行
       .word {text-overflow:ellipsis;overflow: hidden;/*彈性伸縮盒子模型顯示*/display: -webkit-box;/*設置或檢索伸縮盒子的子元素的排列方式*/-webkit-box-orient: vertical;/*限制在一個塊元素的文本行數*/-webkit-line-clamp: 2;line-clamp: 2;}
      

2.題目:

?代碼:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {top: 0;height: 100px;width: 70px;background-color: aquamarine;border-radius: 6px;text-align: center;font-size: 60px;overflow: hidden;}.content{position: relative;top: 0;transition: all 1s;}.box:hover .content{position: relative;top: -690px;}</style>
</head><body><div class="box"><div class="content"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div></div></div>
</body></html>

?效果:

思路:

? ? ? ? 大盒子套小盒子,小盒子里裝數字,并為小盒子添加過渡屬性。當光標移至大盒子處時,小盒子向上走。

3.題目:

代碼:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>@keyframes change {0% {transform: scaleY(0.08);}50% {transform: scaleY(1);}100% {transform: scaleY(0.08);}}.box {display: flex;justify-content: center;align-items: center;margin: 100px auto;height: 200px;width: 100px;background-color: #fff;}div {margin-left: 2px;height: 100px;width: 5px;background-color: blue;border-radius: 3px;transition: all 1s;animation: change 2s linear infinite;}div:nth-child(n+2) {animation-delay: 0.2s;}div:nth-child(n+3) {animation-delay: 0.4s;}div:nth-child(n+4) {animation-delay: 0.6s;}div:nth-child(n+5) {animation-delay: 0.8s;}div:nth-child(n+6) {animation-delay: 1s;}div:nth-child(n+7) {animation-delay: 1.2s;}div:nth-child(n+8) {animation-delay: 1.4s;}div:nth-child(n+9) {animation-delay: 1.6s;}div:nth-child(n+10) {animation-delay: 1.8s;}div:nth-child(n+11) {animation-delay: 2s;}div:nth-child(n+12) {animation-delay: 2.2s;}</style>
</head><body><header class="box"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></header>
</body></html>

效果:

思路:

? ? ? ? 給所有子盒子添加縮放動畫,并按照順序添加animation-delay屬性,若要圖像向右走,則delay隨盒子順序遞增,若要圖像向左走,delay隨盒子順序遞減。

4.題目:

代碼

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.w {margin: 0 auto;}div:nth-child(1) {transition-delay: 0s;}div:nth-child(2) {transition-delay: 0.2s;}div:nth-child(3) {transition-delay: 0.4s;}div:nth-child(4) {transition-delay: 0.6s;}div:nth-child(5) {transition-delay: 0.8s;}div:nth-child(6) {transition-delay: 1s;}div:nth-child(7) {transition-delay: 1.2s;}div:nth-child(8) {transition-delay: 1.4s;}div:nth-child(9) {transition-delay: 1.6s;}section {display: flex;justify-content: center;align-items: center;height: 200px;width: 200px;background-color: aqua;}div {margin-left: 5px;height: 5px;width: 5px;background-color: blue;border-radius: 3px;transition: all 0.5s;}section:hover div:nth-child(1) {height: 15px;}section:hover div:nth-child(2) {height: 30px;}section:hover div:nth-child(3) {height: 45px;}section:hover div:nth-child(4) {height: 45px;margin-top: 10px;}section:hover div:nth-child(5) {height: 50px;margin-top: 25px;}section:hover div:nth-child(6) {height: 45px;margin-top: 10px;}section:hover div:nth-child(7) {height: 45px;}section:hover div:nth-child(8) {height: 30px;}section:hover div:nth-child(9) {height: 15px;}</style>
</head><body><section class="w"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></section>
</body></html>

?效果:

思路:

????????要求元素做到hover響應,并在光標移開時相應元素也有相應的延遲過渡,如果響應設置為動畫并添加到hover偽類中,光標移開動畫屬性即撤銷,要做到撤銷后仍保留動畫還原的推遲,這是html和css范圍內的基礎動畫無法實現的,考慮使用過渡。

? ? ? ? 我們知道光標移開后hover屬性撤銷,想要實現撤銷后仍然有延遲過渡,我們需要該元素本身就有延遲過渡的屬性,所以先為各元素設置其自身的延遲過渡:

        div:nth-child(1) {transition-delay: 0s;}div:nth-child(2) {transition-delay: 0.2s;}div:nth-child(3) {transition-delay: 0.4s;}div:nth-child(4) {transition-delay: 0.6s;}div:nth-child(5) {transition-delay: 0.8s;}div:nth-child(6) {transition-delay: 1s;}div:nth-child(7) {transition-delay: 1.2s;}div:nth-child(8) {transition-delay: 1.4s;}div:nth-child(9) {transition-delay: 1.6s;}

? ? ? ? 然后設置hover的變化:

        section:hover div:nth-child(1) {height: 15px;}section:hover div:nth-child(2) {height: 30px;}section:hover div:nth-child(3) {height: 45px;}section:hover div:nth-child(4) {height: 45px;margin-top: 10px;}section:hover div:nth-child(5) {height: 50px;margin-top: 25px;}section:hover div:nth-child(6) {height: 45px;margin-top: 10px;}section:hover div:nth-child(7) {height: 45px;}section:hover div:nth-child(8) {height: 30px;}section:hover div:nth-child(9) {height: 15px;}

? ? ? ? ?效果實現,針對想要的特殊情況再進行特別修改即可。

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

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

相關文章

Linux入門(十八)read函數

read 讀取控制臺輸入 基本語法 read 選項 參數 選項 -p 指定讀取值時的提示符 -t 指定讀取值時等待的時間&#xff08;秒&#xff09;&#xff0c;如果沒有在指定的時間內輸入&#xff0c;就不再等待了 參數 變量&#xff1a;指定讀取值的變量名 實例&#xff1a; 1、讀取控制…

Python 文件操作詳解

文章目錄 Python 文件操作詳解一、文件操作的基本流程二、文件打開模式詳解1. 基本模式2. 擴展模式3. 模式組合示例 三、文件操作方法大全1. 打開和關閉文件2. 讀取文件內容3. 寫入文件內容4. 文件指針操作 四、文件編碼處理五、二進制文件操作六、常見文件操作場景1. 文件內容…

用AI配合MCP快速生成n8n工作流

在數字化時代的浪潮中&#xff0c;AI技術正以前所未有的速度改變著我們的生活和工作方式。從智能家居到智能辦公&#xff0c;從數據分析到自動化流程&#xff0c;AI的應用場景無處不在。今天&#xff0c;我們將帶你走進一個充滿創新與效率的世界&#xff0c;探索如何通過AI大眼…

ArkUI-X框架LogInterface使用指南

ArkUI-X框架支持日志攔截能力&#xff0c;Android側提供原生接口&#xff0c;用于注入LogInterface接口&#xff0c;框架日志及ts日志通過該接口輸出&#xff0c;本文的核心內容是介紹如何在Android平臺上有效利用ArkUI-X框架的LogInterface攔截日志。 Android平臺創建ArkUI-X…

函數重載與函數模板

函數重載與函數模板 函數重載 函數組成 返回類型 函數名稱(參數列表){函數體}函數簽名&#xff1a;函數名稱(參數列表) C 允許定義同名函數&#xff0c;前提是它們具有不同的簽名。這被稱為函數重載 。 C 編譯器通過檢查調用中參數的數量、類型和順序來選擇要調用的適當函…

NLP學習路線圖(四十六):可解釋性

在自然語言處理(NLP)技術重塑人機交互、信息檢索甚至司法決策的今天,一個尖銳的問題愈發凸顯:當模型在文本分類中判定你的貸款申請被拒,或在簡歷篩選中將你排除,你是否有權追問一句——“為什么?” 一、黑箱迷霧:NLP模型的不透明困境 現代NLP的核心驅動力——深度神經…

uniapp的app項目,在華為pad上運行,頁面顯示異常

最開始為了好調試&#xff0c;運行成h5在瀏覽器調試的&#xff0c;調完以后&#xff0c;放到pad上。。。天塌了&#xff0c;所有頁面異常&#xff0c;感覺被放大了好多&#xff0c;而且頁面很亂。。。 查了很多資料&#xff0c;說把px改為rpx&#xff0c;好&#xff0c;全部改…

Linux中的連接符

Linux中的&&連接符 和其它語言類似&#xff0c;在Shell中&#xff0c;&&是一個邏輯運算符&#xff0c;表示邏輯AND&#xff0c;用于連接多個條件表達式 不同的是&#xff0c;在Linux系統中&#xff0c;&&不僅可以連接條件表達式&#xff0c;而且還能連…

裝飾模式Decorator Pattern

模式定義 動態地給對象增加額外的職責 對象結構型模式 模式結構 Component&#xff1a;抽象構件 ConcreteComponent&#xff1a; 具體構件 Decorator&#xff1a;抽象裝飾類 ConcreteDecorator&#xff1a; 具體裝飾類 抽象裝飾類代碼 public class Decorator extends Compo…

https說明

http是無狀態的&#xff0c;https是在http應用層協議和tcp傳輸控制層之間加了一層&#xff0c;主要功能包括加密傳輸內容&#xff0c;校驗信息是否完整&#xff0c;信息是否被篡改等。http的網絡傳輸&#xff0c;源端應用層發送http請求&#xff0c;傳輸到源端的控制層&#xf…

實時操作系統(FreeRTOS、RT-Thread)RISC-V

FreeRTOS&#xff1a;FreeRTOS? - FreeRTOS? RT-Thread&#xff1a;rt-thread.org VxWorks&#xff1a; QNX Neutrino RTOS&#xff1a; RT-Linux&#xff1a; 一、 實時操作系統介紹 實時操作系統&#xff08;Real Time Operating System&#xff0c;簡稱RTOS&#xff…

Python3除標準庫外更全面的XML解析方案

一、擴展解析庫方案 lxml高性能解析 from lxml import etree doc etree.parse(data.xml) # XPath 2.0增強查詢 nodes doc.xpath(//student[score>90]/name/text())優勢&#xff1a;支持XPath 2.0語法和XSLT轉換&#xff0c;比標準庫快5-10倍 BeautifulSoup混合解析 fr…

同時裝兩個MySQL, 我在MySQL5的基礎上, 安裝MySQL8

目錄 1. 前言 2. 下載MySQL 3. 安裝MySQL 3.1 第一步:選擇MySQL ?編輯 3.2 第二步:存儲地址 3.3 第三步 3.4 第四步:完成基礎配置 3.5 第五步 3.6 第六步:數據庫密碼 3.7 第七部:服務名 4. 環境變量 4.1 復制MySQL的bin地址 4.2 進入高級系統設置 4.3 PATH 4.4 更改…

Visual Studio 2022打包程序流程

Visual Studio 2022打包程序流程 打開管理拓展 安裝Microsoft Visual Studio Installer Projects 關閉軟件才能繼續安裝 安裝完成后點擊&#xff0c;解決方案&#xff0c;創建新項目 添加&#xff1a;setup project 打開軟件的路徑 復制路徑 添加文件 粘貼剛才復制的路徑&…

web3方法詳解

web3.py 是一個功能強大的 Python 庫,用于與以太坊區塊鏈交互。它提供了多種模塊和功能,涵蓋賬戶管理、智能合約交互、交易發送、區塊鏈數據查詢等。以下是 web3.py 的主要功能模塊及其用途: 1. Web3 核心模塊 功能:提供基礎連接、工具函數和核心功能。 常用方法: Web3(…

HTML5+JS實現一個簡單的SVG 貝塞爾曲線可視化設計器,通過幾個點移動位置,控制曲線的方向

三次貝塞爾曲線,二次貝塞爾曲線有什么區別 https://blog.csdn.net/xiaoyao961/article/details/148678265 SVG 貝塞爾曲線可視化設計器 下面是一個簡單的貝塞爾曲線可視化設計器&#xff0c;使用 HTML5 和 JavaScript 實現。這個設計器允許你通過拖動控制點來實時調整貝塞爾曲…

Pytorch框架——自動微分和反向傳播

一、自動微分概念 自動微分&#xff08;Automatic Differentiation&#xff0c;AD&#xff09;是一種利用計算機程序自動計算函數導數的技術&#xff0c;它是機器學習和優化算法中的核心工具&#xff08;如神經網絡的梯度下降&#xff09;&#xff0c;通過反向傳播計算并更新梯…

【Linux手冊】進程的狀態:從創建到消亡的“生命百態”

目錄 前言 操作系統進程狀態 運行狀態 阻塞狀態 掛起狀態 Linux中具體的進程狀態 R(running)運行狀態 S(sleeping)阻塞狀態 D(disk sleep)磁盤休眠狀態 T(stopped)和t(tracing stop) X(dead)終止狀態 Z(zombie)僵尸狀態 僵尸進程的危害 前言 我們在運行可執行程序…

李沐--動手學深度學習 LSTM

1.從零開始實現LSTM #從零開始實現長短期記憶網絡 import torch from torch import nn from d2l import torch as d2l#加載時光機器數據集 batch_size,num_steps 32,35 train_iter,vocab d2l.load_data_time_machine(batch_size,num_steps)#1.定義和初始化模型參數&#xff…

面經的疑難雜癥

1.介紹一下虛擬地址&#xff0c;虛擬地址是怎么映射到物理地址的&#xff1f; 虛擬地址是指在采用虛擬存儲管理的操作系統中&#xff0c;進程訪問內存時所使用的地址。每個進程都有獨立的虛擬地址空間&#xff0c;虛擬地址通過操作系統和硬件&#xff08;如MMU&#xff0c;內存…