HTML中div嵌套div的margin不起作用

来源:https://www.cnblogs.com/abc-x/archive/2020/07/29/13400120.html
-Advertisement-
Play Games

下麵介紹一下div嵌套div時margin不起作用的解決方案。 順便科普下margin的定義和用法。 div嵌套的HTML代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" ...


下麵介紹一下div嵌套div時margin不起作用的解決方案。

順便科普下margin的定義和用法。

div嵌套的HTML代碼:

<!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 type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        body{
            width: 100%;
            height: 100%;
            background-color: dodgerblue;
        }
        .box{
            width: 300px;
            height: 300px;
            margin: 30px;
            background-color: gray;
        }
        .box .child{
            width: 200px;
            height: 200px;
            margin: 50px;
            background-color:darkturquoise;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="child">

        </div>
    </div>
</body>
</html>

實際效果:

這其實不是我們想要的效果,先來說下為什麼會出現這個問題:

有兩個嵌套關係的div,如果外層div的父元素padding值為0,那麼內層div的margin-top或者margin-bottom的值會“轉移”給外層div。

解決該問題我們需要先瞭解ie特有的一個屬性haslayout。

我們要實現的效果是這樣的:

最後我們來說一下解決方法:

1、讓父元素生成一個block formating context(塊級格式化上下文,可自行百度瞭解),以下屬性可以實現

float: left/right

position: absolute

display: inline-block

overflow: hidden/auto

2、給父元素添加border或者padding


以方法一的overflow:hidden為例:

<!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 type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        body{
            width: 100%;
            height: 100%;
            background-color: dodgerblue;
        }
        .box{
            width: 300px;
            height: 300px;
            margin: 30px;
            background-color: gray;
            overflow: hidden;
        }
        .box .child{
            width: 200px;
            height: 200px;
            margin: 50px;
            background-color:darkturquoise;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="child">

        </div>
    </div>
</body>
</html>

最終效果:

 


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

-Advertisement-
Play Games
更多相關文章
  • 一般這個錯誤是由密碼錯誤引起,解決的辦法自然就是重置密碼。 假設我們使用的是root賬戶。 1.重置密碼的第一步就是跳過MySQL的密碼認證過程,方法如下: root 00:22:26~$ vim /etc/my.cnf (註:windows下修改的是my.ini) 2.在文檔內搜索mysqld定位 ...
  • Windows下mysql忘記密碼怎麼辦? 時隔半個月,我終於又開始操刀mysql,但是不小心砍到了我的腦子,密碼什麼的我全都忘了,結果,你懂的。。。所以,今天我就總結了一下網上的解決方法以及我自己的解決方法的一些心得。 方法一:免密碼進入mysql再修改密碼 步驟一:找到mysql安裝目錄下的配置 ...
  • 提到事務,相信大家都不陌生,事務的ACID四大特性,也是面試時經常問的,不過一般情況下,我們可能想到的是傳統關係型資料庫的事務,其實,Redis也是提供了事務機制的,本篇博客就來講解下Redis的事務機制。 1. 事務演示 Redis的事務提供了一種將多個命令請求打包,然後一次性、按順序性地執行多個 ...
  • 官方文檔https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_eight.htm#i1037226set autotrace off表示關閉,是預設的(set autot off)set autotrace on表示顯示結果、執行計劃、統... ...
  • why do it 如果你的App中包含或涉及到第三方登錄(例如:QQ登陸、微信登陸等),就必須接入蘋果登陸,如果不適配蘋果推出的Sign In With Apple審核將會被拒絕。 what is Sign In With Apple 其實和平時的一些第三方登陸一樣,通過授權,可以拿到用戶名,郵箱 ...
  • hi,我是老朋友,最近迷戀上了海外版本的抖音,也就是tiktok,然後想把某個老外的所有視頻保存下來,tiktok軟體里不支持,所以就網上搜尋了一番,發現一個不錯的線上工具。支持解析任何主播主頁的作品、喜歡視頻支持Tiktok 作品、喜歡批量下載。可以把Tiktok國際版抖音視頻批量去水印解析下載到 ...
  • 本文主要寫給剛接觸移動端開發的同鞋們。 首先先將幾個主要概念講一下; 什麼是移動端? 移動端故名思義是為移動終端,大名叫移動通信終端,是指可以在移動中使用的電腦設備。其實就是我們常說的手機。 什麼是佈局? 前端開發中佈局是將主要的html結構佈置好。 rem是什麼? rem是一種長度單位,是而且僅 ...
  • 本系列基於阮一峰老師的《JavaScrip語言入門教程》或《JavaScript教程》記錄整理,教程採用知識共用 署名-相同方式共用 3.0協議。這幾乎是學習js最好的教程之一(去掉之一都不過分) 最好的教程而阮一峰老師又採用開源方式共用出來,之所以重新記錄一遍,一是強迫自己重新認真讀一遍學一遍;二 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...