css之子元素获取(未定义高度)父元素的高度

你可能碰到过这样的需求,一个高度不固定的区域(内容由用户创造),当鼠标经过该区域或者其神马操作时,需要出现一个与该区域一样大的模版;

我们用一个span来处理这个mask。由于 .sample-1 和 .sample-2 的高度是不确定的,也就是说我们没有对它们定义 height。如果父元素没有定义高度,子元素仍然可以通过 height:100% 的方式来得到父元素的实际高度。

除了IE6,几乎所有的主流浏览器都支持子元素获取父元素(未定义高度)的高度;

对于这个用户创造内容的区域,高度会在一个什么范围内,我想你是会有一个预期的,你可以定义一个适当的padding值,如果实在无法预期,那你不妨将这个值定义大一点;这里将padding-bottom定义为500px;用_overflow:hidden;来防止mask溢出父层;

html代码:

<div id="demo"> <div class="sample-1"><p>我的高度其实是没有定义的,内容有多少我就有多高。</p><span class="mask"></span></div>
<div class="sample-2"><p>我的高度其实是没有定义的,内容有多少我就有多高。我的高度其实是没有定义的,内容有多少我就有多高。</p><span class="mask"></span></div> </div>

CSS代码:

#demo div{ position:relative;        _overflow:hidden;        width:300px; } #demo span{ position:absolute;        top:0;        left:0;       width:100%;        height:100%;        _padding-bottom:500px; }

  

时间: 2024-10-23 12:28:06

css之子元素获取(未定义高度)父元素的高度的相关文章

子元素margin-top为何会影响父元素?

子元素margin-top为何会影响父元素? 引用地址:https://blog.csdn.net/sinat_27088253/article/details/52954688 2016年10月28日 11:25:38 阅读数:6944 问题如下 一段很简单的代码: css如下: <style type="text/css"> *{ margin: 0px; padding: 0px; } .show{ margin: 0px auto; width: 200px; he

子元素浮动时无法撑开父元素,父元素高度为0的解决方法

当子元素浮动时无法撑开父元素,父元素高度为0.这时可以通过在浮动的子元素后清除浮动来使父元素获得正确的高度. <div> <div style="float:left;height:200px;">child</div> <div style="clear:both;"></div> </div>

解决IE6,IE7下子元素使用position:relative、父元素使用overflow:auto后,子元素不随着滚动条滚动的问题

在IE6,IE7下,子元素使用position:relative.父元素使用overflow:auto后,我们预期的是滚动条滚动时,子元素也随着滚动,实际情况是内容不滚动,就感觉你是定位定在那里了. 解决办法是父元素添加position:relative样式

子元素float后,防止父元素塌陷的方法

A在浮动元素后加个div设置clear: both; height:0,overflow:hidden B使用clearfix;用于父元素上 1 .clearfix:after { 2 content: " "; 3 display: block; 4 clear: both; 5 height: 0; 6 } 7 .clearfix { 8 zoom: 1; 9 } 优化后的: 1 .clearfix { 2 zoom: 1; 3 display: table; 4 width: 1

[ jquery 过滤器 parent(expr) ] 此方法用于在选择器的基础之上搜索被选元素中符合表达式的父元素

此方法用于在选择器的基础之上搜索被选元素中符合表达式的父元素 取得一个包含着所有匹配元素的唯一父元素的元素集合,你可以使用可选的表达式来筛选: 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' c

使元素相对于窗口或父元素水平垂直居中的几种方法

如果一个元素具有固定或相对大小,要使其不管如何调整窗口大小或滚动页面,始终位于浏览器窗口中间,可使用如下方法: <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title><meta charset="utf-8&q

CSS子元素浮动之后如何撑开父元素

(1)在浮动子元素后面添加 <div style="clear:both;"></div> (2)父元素CSS添加 z-index:1; overflow:hidden; (3)绝对定位/静止定位(absolute/fixed); (4)父元素也跟着浮动 (5)父元素设定高度 (6)最佳方案: 父元素CSS添加: overflow:auto;_height:1%;

子元素要绝对定位时,父元素应该怎么办?

昨天做练习时,遇到了这个问题: 如果子元素设置绝对定位(absolute),父元素需要设置相对定位(relative),否则子元素就不知道会飘到哪去了. 但总觉得还是没搞清楚,就去百度了,得到了一些见解,以下: 一.表 实现子元素在父元素中的绝对定位必须满足以下两个条件: 1.父元素要有相对定位属性(position:relative), 2.子元素设置绝对定位(position:absolute),并且同时加四个方向(top,bottom,left,right)的任意方向的属性值 <!DOCT

子元素margin-top属性传递给父元素的问题 转!

问题描述:一个父包含框包含一个子元素.给正常流的子元素一个垂直外边距margin-top就会使得父元素跟着往下走,而子元素和父元素的边距则没有发生变化. html结构:<div class="box1"><div class="box1_1"></div></div>css样式:.box1{height:400px;background:#fad;}.box1_1{height:100px;margin-top:50p