相关疑难解决方法(0)

浮动元素是否会像定位元素一样创建单独的堆叠上下文?

最近我点了一篇关于CSS z-index属性的有趣文章.我发现它是因为我正在寻找一个答案,为什么来自前一个div的溢出文本显示在后面div的背景上方但不在下面div中的span的背景之上,就像这里(jsfiddle):

#overflowed {
  background-color: green;
  width: 300px;
  height: 100px;
}
#non-floated {
  background-color: pink;
  width: 300px;
}
#non-floated span {
  background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)

块框内的内联框

对此的解释是浏览器以特定顺序绘制元素,这是基于所谓的堆叠顺序:

浏览器中HTML/CSS布局的堆叠顺序

因此,对于布局中的根元素和每个定位元素,浏览器创建这样的堆叠顺序,然后绘制所有这些订单,对不起双关语,相应的顺序.

所以这就是内联元素和文本(创建内联框的那些)被绘制在块级元素之上的原因,即使这些块元素稍后出现在文档中,就像我上面的jsfiddle一样.


所以问题本身.

我仍然无法找到答案为什么这些内联框,如果它们被创建,内联元素和浮动元素内的文本不是根据上面的堆叠顺序的方案与浮动元素之外的其他内联框绘制,就像这里(jsfiddle):

#overflowed {
  background-color: green;
  width: 300px;
  height: 100px;
}
#floated {
  background-color: pink;
  width: 300px;
  float: left;
}
#floated span {
  background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这里你可以清楚地看到,文档中第一个div的文本(未浮动)是在span的黄色背景上方(之后)绘制的,而span是内联元素,并且根据上面的堆叠顺序的图像应该在浮动容器(其背景和边框)之后绘制.

那么有人对此有一个可靠的解释吗?我认为浮动元素可以创建类似于自己的堆叠顺序的东西,就像定位元素那样,但我还没有在网上找到任何提及.

html css z-index css-float

16
推荐指数
1
解决办法
386
查看次数

CSS否定z-index:这是什么意思?

如果我在元素的z-index属性中添加负整数值,那么根据标准的预期效果是什么?

我搜索的答案,但只找到了这个:
https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
"负值降低优先"不为我意味着什么.

css z-index

14
推荐指数
2
解决办法
1万
查看次数

父母的CSS过滤器破坏了孩子的位置

我目前正在网站上,遇到这种奇怪的行为。我不确定这是一个错误还是如何解决它,所以我想向您寻求帮助。

因此,我有这个标题屏幕的“动画”,该标题的标题位于全屏页面的中央,当您向下滚动时,标题变小并保留在页面顶部。这是一个具有预期行为的工作示例,从中我剥离了所有不必要的代码以使其最小化:

$(window).scroll( () => {
    "use strict";
    let windowH = $(window).height();
    let windowS = $(window).scrollTop();
    let header  = $("#header").height(); 
	
    if (windowS < windowH-header) {
        $("#title").css("transform", "scale("+(2-(windowS/($(document).outerHeight()-windowH))*2.7)+")");
        $("#header").css("transform", "translateY(0)");
        $("#inside, #content").css({
            "position": "static",
            "margin-top": 0
        });
    } else {
        $("#inside").css({
            "position": "fixed",
            "margin-top": -windowH+header
        });
        $("#content").css("margin-top", windowH);
    }
  
    $("#header").css("position", windowS > (windowH-header)/2 ? "fixed" :"static");
});
Run Code Online (Sandbox Code Playgroud)
.fixed {
    position: fixed!important;
}
.wrapper {
    width: 100%;
    text-align: center;
}
.wrapper:before {
    display: table;
    content: " ";
}
.wrapper:after {
    clear: both; …
Run Code Online (Sandbox Code Playgroud)

css css-position css3 css-transforms css-filters

10
推荐指数
1
解决办法
1831
查看次数

使用过渡时的问题+不透明度变化+溢出隐藏

如果您看到我共享的代码示例,您可以看到框外的叠加层.我将问题追溯到transition属性.

我想删除div之外的内容.溢出不按预期工作.(删除transition作品,但如果可能,我想保留它)

任何帮助表示赞赏

Codepen链接

var timer = setInterval(function() {
  document.querySelector(".qs-timer-overlay").style.opacity = (document.querySelector(".qs-timer-overlay").style.opacity * 1) + 0.1;
  if (document.querySelector(".qs-timer-overlay").style.opacity * 1 == 1) {
    clearInterval(timer);
  }
}, 1000);
Run Code Online (Sandbox Code Playgroud)
.qs-main-header .qs-timer {
  padding: 13px 10px;
  min-width: 130px;
  text-align: center;
  display: inline-block;
  background-color: #dd8b3a;
  color: #FFF;
  font-size: 20px;
  border-radius: 50px;
  text-transform: uppercase;
  float: right;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.qs-main-header .qs-timer-overlay {
  z-index: 1;
  width: 10%;
  max-width: 100%;
  position: absolute;
  height: 100%;
  top: 0;
  left: 0; …
Run Code Online (Sandbox Code Playgroud)

html javascript css css3 css-animations

8
推荐指数
1
解决办法
650
查看次数

用z-index交换非兄弟姐妹

我正在尝试让侧边栏菜单与内容重叠div,其中活动菜单项出现在其上div,非活动项目将显示在下面.a ul和a之间的交点div很小,但交错效应会产生深度错觉.

据我所知,z-index这只适用于兄弟元素.所以以下方法不起作用:

#menu {z-index:0}
#menu li.active {z-index:2}
#content {z-index:1}
Run Code Online (Sandbox Code Playgroud)
<ul id="menu">
  <li class="active">Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>
<div id="content">Side content</div>
Run Code Online (Sandbox Code Playgroud)

是否有一个很好的方法来做到这一点,而不必使每个菜单项div在同一水平上#content

css z-index

6
推荐指数
1
解决办法
6621
查看次数

为什么webkit过滤器上的堆叠顺序更改悬停?

在应用webkit过滤器时,我注意到堆叠顺序存在一个奇怪的问题.为什么当我将鼠标悬停在图像上时堆叠顺序会发生变化?

我宁愿不必使用z-indexing来解决这个问题,因为它会破坏其他网站元素.

这是我的JSFiddle http://jsfiddle.net/r13ycy1p/

请原谅荷马,我只需要一张图片.

编辑:如何反转效果以阻止绝对位置div被隐藏?

这是我的HTML

<ul>
<li>
    <a href="#">
        <div class="slide-content">
            <div class="slide-title">
                <h1>hello world</h1>
            </div>
            <div class="slide-desc">
                <p>a description about something</p>
            </div>
        </div>
        <img src="http://img4.wikia.nocookie.net/__cb20130920142351/simpsons/images/e/e9/Pic_1187696292_8.jpg"/>

    </a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS

li {
list-style:none;    
}

.slide-content {
position:absolute;
color:red;
top:50px;
}

li a:hover img{
-webkit-filter: grayscale(100%); /* For Webkit browsers */
}
Run Code Online (Sandbox Code Playgroud)

css webkit z-index filter

6
推荐指数
1
解决办法
2073
查看次数

不设置不透明度时,元素消失:0.99

我创建了一个响应式页面,其中包含带有文本和模糊背景的框.该页面可在JSFiddle找到.

问题是: .content如果不将元素设置opacity为0.99,元素不可见.为什么?

HTML

<div class="content-box">
    <div class="content-bg"></div>
    <div class="content">
         <p>Text with blurred background</p>
         <p>Text with blurred background</p>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

body {
    background-image: url('http://hazor.iki.fi/2003/juhannus/isot/DSCN9068-Maisema.jpg');
    background-color: black;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
    background-size: cover;
    background-size: no-repeat fixed center center cover;
    overflow: hidden;
}

.content-box {
    position: relative;
    width: 300px;
    overflow: hidden;
}

.content-bg {
    position: absolute;
    background-size: cover;
    background-image: url('http://hazor.iki.fi/2003/juhannus/isot/DSCN9068-Maisema.jpg');
    background-color: black;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
    background-size: cover; …
Run Code Online (Sandbox Code Playgroud)

html css css3

6
推荐指数
1
解决办法
1015
查看次数

包含阴影和变换的堆栈不正确

我创建了一个形状,表示一个阴影朝向底部变大的页面.

body {
  background: #dddddd;
}
div {
  background: white;
  margin: 40px auto;
  height: 300px;
  width: 300px;
  position: relative;
  padding: 10px;
}
div:before,
div:after {
  height: 96%;
  z-index: -10;
  position: absolute;
  content: "";
  left: 8px;
  top: 2%;
  width: 30%;
  max-width: 300px;
  background: transparent;
  box-shadow: -10px 0px 10px rgba(0, 0, 0, 0.5);
  transform: rotate(1.5deg);
}
div:after {
  transform: rotate(-1.5deg);
  right: 8px;
  left: auto;
  box-shadow: 10px 0px 10px rgba(0, 0, 0, 0.5);
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)

我需要将其旋转,但是当我尝试添加时transform: rotate(10deg),box-shadow幻觉会被破坏并且会在父图层上移动.

css css3 css-transforms css-shapes box-shadow

5
推荐指数
1
解决办法
916
查看次数

CSS 转换的父级影响子级位置

为什么在转换父级时子级位置会受到影响?

我希望蓝色框留在黄色框的右下角位置。但是当我翻译红色框时,蓝色框会移动到他的(红色)父级。

在现实生活中,红色框代表我在 Angular 中的 ui-view。视图正在滑入和滑出。我无法更改 HTML 层次结构。

查看我的代码笔 https://codepen.io/benbesuijen/pen/GPOQjM

HTML

<div class="box-yellow">
    <div class="box-red">
        <div class="box-blue"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

.box-yellow {
  background-color: yellow;
  position: relative;
  height: 200px;
  width: 200px;
}

.box-red {
  background-color: red;
  height: 100px;
  width: 100px;  
}

.box-blue {
  background-color: blue;
  bottom: 0;
  height: 50px;
  position: absolute;
  right: 0;
  width: 50px;
}

.box-move {
  transform: translateX(100%);
}
Run Code Online (Sandbox Code Playgroud)

html css

4
推荐指数
2
解决办法
2324
查看次数

css动画为什么会改变z-index?

为什么动画会改变 z-index?

如果您查看 jsfiddle,您会看到红色图像位于顶部,但如果注释掉动画,则蓝色图像位于顶部。即使有动画,如何才能使蓝色图像始终位于顶部?

jsfiddle

超文本标记语言

<img class="blue" src="http://via.placeholder.com/200/0037ff">
<img class="red" src="http://via.placeholder.com/200/ff0010">
Run Code Online (Sandbox Code Playgroud)

CSS

.red {
  -webkit-animation-name: red;
  -webkit-animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
  animation-name: red;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}

.blue {
  transform: translate(30%);
}

@keyframes red {
  from {
    transform: translate(50%);
  }
  to {
    transform: translate(0);
  }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢!

css css-transforms css-animations

4
推荐指数
1
解决办法
1万
查看次数