1. 程式人生 > >【CSS黑魔法】父元素無高度情況下的子元素高度自適應方法

【CSS黑魔法】父元素無高度情況下的子元素高度自適應方法

前言:

  此方法IE6以上(不包括IE6)瀏覽器均可行。

正題:

  問題重現:

    當一個沒有設定高度的父級元素下擁有兩個子元素(為了方便,就用兩個就好了,不代表一定是兩個),一個子元素有高度或被內容撐開(這時候父元素被撐開了),另一個子元素我們希望讓他高度根據父元素自適應,比如高度佔父元素的70%的話,在不借助彈性盒子佈局的情況下如何使用CSS實現呢?

  解決方案:

    我們知道css中在父元素沒有被設定高度(height)的時候,子元素的高度(height)設定百分比是無效的,其核心原因在於這時候他並不知道參照物是誰,

父元素也沒有明確設定高度,這時候瀏覽器就預設不做任何計算,就導致了即使子元素設定了高度也無效的情況。那麼純css方式就沒任何辦法能實現了嗎,答案是否定的。

在css的世界裡有個叫做定位的佈局方式,其名下有個叫做絕對定位的小弟,這個小弟需要被設定了定位(absolute,fixed,relative任意一種)的父元素或者祖先元素作為參照物,

然後相對於他們去進行定位。參照物。。。參照物,。。。參照物。。。。好吧 那麼這時候既然已經有了參照物了,我們設定子元素的高度為百分比的時候會發生什麼呢?看圖:

  

這時候就可以看到,子元素以父元素為參照物進行計算高度了,問題也就解決了。

最後,如果大家還有什麼更好的方案,請分享下你的思路,感謝~~

相關推薦

CSS魔法元素高度情況下的子元素高度適應方法

前言:   此方法IE6以上(不包括IE6)瀏覽器均可行。 正題:   問題重現:     當一個沒有設定高度的父級元素下擁有兩個子元素(為了方便,就用兩個就好了,不代表一定是兩個),一個子元素有高度或被內容撐開(這時候父元素被撐開了),另一個子元素我們希望讓他高度根據父元

溫故知新——CSS魔法小技巧可以少些不必要的js

人員 lan 溢出 簡單 chrome 元素屬性 tps ins none 前言:這篇文章是轉載【前端開發博客】的一篇技術文章,並非本人所寫。只是個人覺得很實用,所以分享給大家。原文鏈接:github.com 1、利用 CSS 的 content 屬性 attr 抓取

css筆記(2)如何給元素應用規則?

mpi phy yellow ini log min lib second from css選擇器 在介紹之前我麽你先來看看css大致分為幾種選擇器: 1.類型選擇器(元素選擇器) 2.後代選擇器(元素的所有後代) 3.偽類(:active, :hover, :fo

CSS基礎筆記——盒模型、塊級元素、行內元素、浮動、對齊、定位

小技巧 特性 ott lan 解決 字母 無效 其中 決定 CSS3 box-sizing 屬性分為content-box和border-box content-box:在該盒屬性下,對元素設定的width和height會被應用到元素內容框,在內容框寬高之外繪制元素的內邊距

CSS基礎筆記元素 偽類 過渡 動畫 陰影 漸變 繼承

偽元素: 偽元素在DOM樹中建立了一些是不存在於文件語言裡的抽象元素。 (例如常用的::before,::after::before,::after只有在設定屬性:content:""之後才能顯示)【偽元素本質上是建立了一個有內容的虛擬容器;】 偽元素的由兩個冒號::開頭,然後是偽元素的名稱

CSS 魔法小技巧,讓你少寫不必要的JS,代碼更優雅

3D splay conf fill page under 隔離 popover 運行 首頁 登錄註冊 CSS 黑魔法小技巧,讓你少寫不必要的JS,代碼更優雅 閱讀 8113 收藏 927 2017-09-26 原文鏈接:git

CSS選擇器理解匯總和記錄

有符號 LV 插入 HR blog ora sele display log 註:CSS選擇器一直糾結了好久,就是不怎麽理解,現在進行整理分類,加強理解。內容如下:(格式來自WorkFlowy,故不適合文本展示,請容忍一下)CSS選擇器理解、匯總和記錄1、選擇器中符號含義匯

CSS進階box-shadow 與 filter:drop-shadow 詳解及奇技淫巧

box-shadow 在前端的 CSS 編寫工作想必十分常見。但是 box-shadow 除去它的常規用法,其實還存在許多不為人知的奇技淫巧。 box-shadow 常規用法 說到 box-shadow ,首先想到的必然是它能夠生成陰影,所以稱之為 shaodow ,簡單看看它的語法:

C++學習筆記類指標指向子類物件

        虛擬函式的作用主要是實現了多型的機制。簡而言之就是用父型別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。但僅僅可呼叫父類含有的函式,非父類函式不能呼叫。 普通虛擬函式呼叫 假設我們有下面的類層次: #includ

2018.05.09python3.6+selenium 定位一組元素,獲取url,並隨機點選某個url

elements       學好定位問題   #coding = utf-8 ''' 定位多個元素(百度) 實現網路上的程式碼 ''

CSS筆記二CSS樣式基本知識

一、內聯式css樣式,直接寫在現有的HTML標籤中 CSS樣式可以寫在哪些地方呢?從CSS 樣式程式碼插入的形式來看基本可以分為以下3種:內聯式、嵌入式和外部式三種。 內聯式css樣式表就是把css程式碼直接寫在現有的HTML標籤中,如下面程式碼: &

CSS編碼規範

單行形式書寫風格的排版約束 1、每一條規則的大括號 { 前後加空格 2、多個selector共用一個樣式集,則多個selector必須寫成多行形式 3、每一條規則結束的大括號 } 前加空格 4、屬性名冒號之前不加空格,冒號之後加空格 5、每一個屬性值後必須新增分號; 並且分號後空格 多

CSS筆記一開始學習CSS,為網頁新增樣式

一、認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Style Sheets)”,它主要是用於定義HTML內容在瀏覽器內的顯示樣式,如文字大小、顏色、字型加粗等。 如下列程式碼:

DockerCentOS7 上網路情況下安裝

自建虛擬機器,但是連線不上網路,只能通過下載rpm包進行安裝docker 環境:CentOS 7.3.1611 x64 在這裡能找到想要的docker相關的所有包 我這裡只下載了三個包。分別是 docker-ce-selinux-17.03.1.ce-0.1.rc

強化學習筆記4.4 模型的強化學習方法-蒙特卡羅演算法與重要性取樣程式碼實現

#!/usr/bin/env python # -*- coding:utf-8 -*- #import gym import random import numpy as np class GriDMdp: def __init__(s):

USACO4.1.3籬笆迴路 向圖最小環

題目意思就是讓你求無向圖最小環,但是給資料的方式非常噁心。 我的用並查集+暴力的方式…… 先給每個邊的頂點標號,然後……  把A能到B,B也能到A的邊的點,給併為一個點…… 然後floyd求最小環。 floyd最小環我自己還不是非常理解…… 但是先用著,上課再想

CSS佈局模型流動模型、浮動模型、層模型

流動模型 流動是預設的網頁佈局格式,預設情況下HTML元素都根據該模式來分佈網頁內容。 該模型下有兩個特徵元素 塊狀元素 顧名思義,他是一個方塊, - 塊狀元素在預設情況下於包含元素中自上而下垂直排布。 - 預設情況下,寬度為100%,所以實際

者裡darker是誰?揭祕下羅飛和darker的關係

暗黑者裡darker是誰?揭祕下羅飛和darker的關係吧,這本電視劇暗黑者是根據小說改編的,郭京飛在微博裡說過,小說和電視劇不會改太多,所以我相信最後的darker還是和小說裡的一樣,是羅飛的同學。暗黑者播到現在,原作裡完整的人物形象也就剩下韓灝和曾日華了,這個空降出來的

CSS小技巧CSS 實現一個寬高等比適應容器

問題 overflow 比較 tor 移動 刪除 flow 瀏覽器兼容性 ron 不知道怎麽起個標題能更加清楚的說清楚我的意圖,那就打個比方吧:比如我們在手機端上放一張寬度 100% 的圖片,我們如果不設置圖片的高度,那麽這個圖片會根據圖片的原始尺寸等比縮放。今天我們要講的

強化學習筆記4.2 模型的強化學習方法-蒙特卡羅演算法程式設計實現

本文給出基於蒙特卡洛的強化學習方法(隨機策略計算狀態值函式)和基於蒙特卡洛的強化學習方法(ε−greedy策略計算狀態行為值函式)兩種方法的程式設計實現。 問題模型是迷宮問題。 針對一個迷宮問題,設計基於蒙特卡洛的強化學習方法。 迷宮圖示見下圖,其中紅色