【问题标题】:centering div behind other divs- padding & margin not working将 div 居中在其他 div 后面 - 填充和边距不起作用
【发布时间】:2013-06-15 03:10:49
【问题描述】:

#home-slider 应该完全居中在#home 内的所有其他 div 后面。 marginpadding 似乎不起作用,因为 #home-slider 仍位于其父 div 的顶部左侧。我还能如何将其降低并居中?或者更确切地说,我错过了什么?

jsfiddle

live site

html

<!-- language: lang-html -->

    <div id="home">
                <div id="home-slider">              
                     <img src="http://lorempixel.com/g/840/420" alt="home-slider" />
                 </div>
            <div class="logo">
                <h1><a href="#"><img src="http://lorempixel.com/232/232" alt="logo" id="logo" /></a></h1>
            </div><!-- end logo -->

            <div id="slider_mask">
                <div class="slide_container">
                    <div class="slide"><p>is where creative <i>je ne sais quoi</i> + business savvy collide.</p></div>
                    <div class="slide"><p>is the maker + doer for makers + doers</p></div>
                    <div class="slide">
                        <ul>
                        <li>No items.</li>                  </ul>
                    </div>
                </div>
                <div class="left_button"><a href="#" class="left-arrow" title="left arrow"></a></div>
                <div class="right_button"><a href="#" class="right-arrow" title="right arrow"></a></div>
            </div>

        </div><!-- end home -->

css

#home-slider {
    top:0;
    height:100%;
    left:0;
    position:fixed;
    z-index:-9999;
}

#home .logo {
    padding-top: 215px;
    margin: 0 auto;
    width: 232px;
}

#home #slider_mask {
    width: 600px;
    margin: 0 auto;
    padding-top: 60px;
    position: relative;
    overflow: hidden;
}

#home #slider_mask .left_button {
    float: left;
    display: block;
    width: 23px;
    height: 25px;
    background: url(img/left-arrow.png);
    text-indent: -99999px;
}

#home #slider_mask .left_button:hover {
    background: url(img/left-arrow-hover.png);
    background-position: 0 0;
}

#home #slider_mask .slide_container {
    float: left;
    font-size: 120%;
    text-align: center;
    width: 300px;
}

#home #slider_mask .right_button {
    float: right;
    display: block;
    width: 23px;
    height: 25px;
    background: url(img/right-arrow.png);
    text-indent: -99999px;
}

#home #slider_mask .right_button:hover {
    background: url(img/right-arrow-hover.png);
    background-position: 0 0;
}

#home #slider_mask .slide {
    float: left;
    display: block;
    text-align: center;
}

【问题讨论】:

  • 你在 jsfiddle 中的代码,多说一点 :) jsfiddle.net/NpuXc
  • 这和你上一个问题有区别吗?
  • @j08691 是的。我之前的问题是关于将主页滑块推到所有其他滑块后面,而这个问题是关于在页面上居中。
  • @GCyrillus 上面有一个 jsfiddle 链接,我在问题中粘贴了我的代码 :)
  • 我是盲人。是时候让自己焕然一新了……

标签: html css margin padding


【解决方案1】:

我知道您希望 #home-slider 位于所有其他人之后,并且其他人居中。就像 adaam 所说的“HTML 元素上的内联样式将 #home-slider div 定义为具有相对位置,而在您的 CSS 中您将其设置为绝对定位。内联已覆盖外部样式表样式”

我还添加了一些其他 css 属性 here

HTML 应该是:

<div id="home-slider">               
         <img src="http://lorempixel.com/g/840/420" alt="home-slider" />
</div>

【讨论】:

  • 从 HTML 中删除内联样式,并使用您更正的 css,#home-slider 仍被强制置于其父 div 的顶部。
【解决方案2】:

这是因为您在 HTML 元素上具有内联样式,将 #home-slider div 定义为具有 relative 位置,而在您的 CSS 中您将其设置为 absolute 定位。内联覆盖了外部样式表样式

这是一个更新的小提琴:http://jsfiddle.net/dsZSE/10/

这就是您的#home-slider 代码的样子:

#home-slider{
top:0;
height:100%;
left:0;
background-image:url('http://lorempixel.com/g/840/420');
background-repeat:no-repeat;
background-size:cover;
position:fixed;
z-index:-9999;
}

【讨论】:

  • 从 HTML 中删除内联样式并使用更正的 css 后,#home-slider 仍被强制置于其父 div 的顶部。另外,position:absoluteposition:fixed 有没有理由?
  • 不抱歉,这是一个错误,使用 fixed 因为它使 div 保持固定 - 在我的示例中您不希望绝对定位。我已经用正确的解决方案更新了小提琴链接
  • 嗯,编辑后的css强制#home-slider回到左上角。我已将我的网站关闭维护模式,因此您可以在此处查看第一手的情况-frshstudio.com
  • @AMC 嗨,对不起,我之前没能回复你,我在酒吧,你能重新打开页面吗,因为我目前正在查看维护页面。跨度>
  • @AMC - 你是否试图实现这样的目标:roadworkers.org?全屏背景滑块?
猜你喜欢
  • 2011-04-17
  • 1970-01-01
  • 2012-11-05
  • 2018-11-05
  • 1970-01-01
  • 2013-05-24
  • 2012-02-14
  • 2019-12-06
  • 1970-01-01
相关资源
最近更新 更多