Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 溢出隐藏相对div中的绝对div_Html_Css - Fatal编程技术网

Html 溢出隐藏相对div中的绝对div

Html 溢出隐藏相对div中的绝对div,html,css,Html,Css,在这种情况下,我的结构如下所示 <div class="red"> <div class="orange"></div> </div> 我面临的问题是,我需要.orangediv完全显示,但它部分显示是因为.reddiv上的溢出。我知道我可以删除溢出,它会工作,但溢出是用于我需要的另一个功能,我无法删除它。是否有任何方法可以使.orangediv完全可见,而不删除父div中的溢出 这是一本书 一个丑陋的解决方案 HTML 如果溢出问题的上下

在这种情况下,我的结构如下所示

<div class="red">
   <div class="orange"></div>
</div>
我面临的问题是,我需要
.orange
div完全显示,但它部分显示是因为
.red
div上的溢出。我知道我可以删除溢出,它会工作,但溢出是用于我需要的另一个功能,我无法删除它。是否有任何方法可以使
.orange
div完全可见,而不删除父div中的溢出

这是一本书

一个丑陋的解决方案

HTML


如果溢出问题的上下文不影响其他内容,您可以使用特定的overflow-x和overflow-y属性吗

i、 e


尝试下面的代码,它可能会帮助你

.red{
高度:200px;
宽度:200px;
溢出:隐藏;
位置:相对位置;
背景:红色;
}
.橙色{
右:0px;
顶部:0px;
身高:100%;
宽度:100%;
位置:绝对位置;
背景:橙色;
}

基本上,为了使绝对定位的元素出现 溢出元素的外部:隐藏,其最近位置 祖先还必须是具有溢出的元素的祖先: 隐藏的

(编辑)通过省略父项中的
位置:相对
,橙色框将绝对相对于
定位,然后可以使用一些脚本重新定位:(或仅手动定位)


尝试将溢出隐藏添加到伪元素,并将其从
.red
选择器中删除。我认为应该这样做:

.red{
  height:200px;
  width:200px;
  position:relative;
  background:red;
}
.red:before,
.red:after{
    overflow: hidden;
}
.orange{
  right: -50px;
  top: 50px;
  height:100px;
  width:100px; 
  position:absolute;
  background:orange;
}

将其更改为滚动怎么样?@Janleyu,这将破坏滚动功能。它必须保持隐藏。那你为什么要显示
.orange
?这是可行的,但我想这不是你需要的…;)->这是一个绝妙的想法,但不幸的是它涉及到更改html结构。修复了,这里不需要包装器。请将答案回滚到使用包装器的版本,好吗?我想我可以用这个。这很整洁。但是显然,
.red
本身仍然需要
溢出:隐藏的
存在。它尝试了,但仍然破坏了主容器的滚动功能。然后我认为您唯一的选择是javascript。
<div class="container">
    <div class="red"></div>
    <div class="orange"></div>
</div>
    .container{
        height: 200px;
        width: 200px;
        position: relative;
    }
    .red {
        height: 200px;
        width: 200px;
        overflow: hidden;
        position: relative;
        background: red;
    }
    .orange {
        right: -50px;
        top: 50px;
        height: 100px;
        width: 100px;
        position: absolute;
        background: orange;
    }
.red {
  overflow-x: auto;
  overflow-y: hidden;
}
css:
    red{
      height:200px;
      width:200px;
      overflow: hidden;
      background:red;
    }

//script
       var parent = $('.red');
       var inner = $('.orange');
       inner.css({
          left:parent.outerWidth()-inner.outerWidth()/2
.red{
  height:200px;
  width:200px;
  position:relative;
  background:red;
}
.red:before,
.red:after{
    overflow: hidden;
}
.orange{
  right: -50px;
  top: 50px;
  height:100px;
  width:100px; 
  position:absolute;
  background:orange;
}