html - 如何将父级的父级宽度应用于相对定位的子级 div?
问题描述
我创建了一个小例子:jsfiddle
当悬停在其中一个红色框上时,我希望文本填充完整的“行”宽度,从父 div 的左边框开始,并且所有框看起来都相同。
text-height 稍后应进行动画处理
(编辑:澄清一下,每个 .ma-text 应该有 .contentaround 的宽度,每行的第一行已经有正确的宽度和位置)
.contentaround{
max-width: 80%;
border:1px solid black;
}
.ma{
min-height: 20px;
margin: 0px;
text-align: center;
border: 2px solid red;
display: inline-block;
width:23%;
}
.ma-text{
min-width: 100%;
width: 65vw;
max-width: 1050px;
text-align: left;
height: 0;
left: 0;
visibility: hidden;
opacity: 0;
box-sizing: border-box;
float:left;
}
.ma:hover .ma-text{
height: auto;
visibility: visible;
opacity: 1;
display: block;
}
<div class="contentaround">
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
</div>
解决方案
如果父元素有一个相对位置,子元素只需要有 width: 100% 就可以拥有父元素的宽度。
.contentaround{
max-width: 80%;
}
.ma{
min-height: 20px;
margin: 0px;
text-align: center;
border: 2px solid red;
display: inline-block;
width:23%;
}
.ma-text{
min-width: 100%;
width: 65vw;
max-width: 1050px;
text-align: left;
height: 0;
left: 0;
visibility: hidden;
opacity: 0;
box-sizing: border-box;
float:left;
}
.ma:hover .ma-text{
height: auto;
width: 100%;
visibility: visible;
opacity: 1;
display: block;
}
<div class="contentaround">
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
<div class="ma ">
<div class="ma-icon">x</div>
<div class="ma-text">
<p>
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
</p>
</div>
</div>
</div>
JSFiddle:https ://jsfiddle.net/vdoLw0yu/25/
推荐阅读
- javascript - 反应子组件不从父值渲染道具
- javascript - Javascript:计算时差不会返回任何问题
- json - django ajax 内容安全策略指令
- jupyter-notebook - 风筝不在 jupyter 实验室工作,但在 python 工作
- php - PHP & Bootstrap 3 sendmail.php 确认进入引导提示成功或失败消息
- powershell - 添加“获取模块 | 移除模块;Clear-Host' 到包含的 PowerShell 代码
- reactjs - 如何解决 React js 中的解析错误?
- java - 我可以在springboot中轻松重用url路径映射作为设置吗?
- amazon-web-services - 将负载均衡器添加到 Elastic Beanstalk 会导致 502 Bad Gateway
- r - R:如何改变列并将其分组