具有动态高度和绝对位置的子DIV-将高度赋予父DIV
Child DIV with dynamic height and absolute position - Give height to parent DIV
(请记住,我不懂代码)
http://sebcastilho.com/
我希望图像滑块拉伸到浏览器的整个宽度。该网站的主题使用了一些响应代码,因此滑块的父DIV宽度不能设置为100%。
因此,解决方案是"position:absolute",以使滑块适合浏览器的100%宽度。然而,当我这样做时,浏览器不知道滑块的内容有多高,因此网站的下一部分最终会向上移动并被滑块覆盖。
如何让Royal Slider的父DIV根据滑块的高度动态更改高度(滑块本身是动态的,取决于它的像素宽度)?
编辑(在ncardeli的回答之后)我得到了我发现有效的这段代码。它获取滑块div的高度(具有位置:absolute的滑块),并将高度提供给包含的div
$(document).ready(function(){
var x = $('#new-royalslider-1').height();
$('.photographySlider').css('height', x);
})
我的问题是,如果浏览器改变大小,它就不会刷新。我怎样才能做到这一点?
使用vw单位和计算,使用纯CSS的解决方案可能是可行的
您应该将滑块的宽度设置为100vw,并将其相对定位。
#new-royalslider-1 {
background-color: black;
margin: 0 auto;
overflow: visible;
padding: 0;
position: relative;
width: 100vw !important;
}
然后,您应该为每个断点设置一个规则,向左设置一个计算值。计算的值是将容器宽度减去视口宽度和左填充的值得出的:
@media (min-width: 768px) {
#new-royalslider-1 {
left: calc((750px - 100vw) / 2 - 15px);
}
}
@media (min-width: 992px) {
#new-royalslider-1 {
left: calc((970px - 100vw) / 2 - 15px);
}
}
@media (min-width: 1200px) {
#new-royalslider-1 {
left: calc((1170px - 100vw) / 2 - 15px);
}
}
点击此处查看浏览器支持:
计算:http://caniuse.com/#feat=calc
vw单元:http://caniuse.com/#feat=viewport-单位
如果你喜欢Javascript解决方案,这个脚本可以:
$(window).on('resize', function (){
$('.photographySlider').height($('#new-royalslider-1').height());
})
相关文章:
- 当DIV的高度低于某个数字时,隐藏DIV的正确逻辑是什么
- 检测 DIV 的高度何时变化,而无需轮询或突变观察者
- Div 高度不会根据子控件自动扩展
- Div 设置为视口高度,即使调整屏幕大小也是如此
- imgAreaSelect JQuery插件可调整大小的Div's最小's宽度和高度
- '高度:切换'在JQuery's'animate'使Div不断切换
- 三个垂直堆叠的 Div,动态高度
- Div 高度不会在附加任何元素时增加
- 如何以固定高度容纳 DIV 的内容
- Div 不会自动计算高度
- 带有样式显示的 Div:表格的高度错误
- 具有不同高度 DIV 的块网格
- Div 没有任何高度
- 使推特小部件的高度与 DIV 相同
- 如何使用jQuery将所有HTML元素包装在DIV中,具体取决于这些HTML元素的总高度
- 如何根据背景图像的高度和宽度设置 DIV 尺寸
- 单击链接时,如何切换 DIV 的大小以扩展其高度
- 确定 DIV 的高度以百分比而不是像素设置
- 强制下一个内容位于可变高度DIV以下
- 移除高度Div与height: Auto?JS / CSS