GVKun编程网logo

CSS:页脚位置绝对或相对取决于内容大小?(css设置页脚)

16

本文将分享CSS:页脚位置绝对或相对取决于内容大小?的详细内容,并且还将对css设置页脚进行详尽解释,此外,我们还将为大家带来关于CSSGrid–自动高度行,调整内容大小、CSS–div宽度取决于上面

本文将分享CSS:页脚位置绝对或相对取决于内容大小?的详细内容,并且还将对css设置页脚进行详尽解释,此外,我们还将为大家带来关于CSS Grid – 自动高度行,调整内容大小、CSS – div宽度取决于上面的图像大小、css – Firefox中具有位置相对和内容绝对错误的表格单元格、css – IE6位置:绝对相对容器调整大小的相关知识,希望对你有所帮助。

本文目录一览:

CSS:页脚位置绝对或相对取决于内容大小?(css设置页脚)

CSS:页脚位置绝对或相对取决于内容大小?(css设置页脚)

我想做这样的事情:

在案例1中:内容高度小于窗口.
在案例2中:内容高度大于窗口 – 并滚动显示,

我的问题是内容是动态变化的.因此,有时.cont高度大于窗口高度.然后,.foot应该在.cont之下.

如果我设置此代码

<html>
<head>
<style type="text/css">
.cont{
    margin:0 auto;
    background-color:#333;
    width:800px;
    height:500px;
}
.foot {
    position:absolute;
    left:50%;
    margin:0 0 0 -400px;
    background-color:#F33;
    width:800px;
    height:20px;
    bottom:0px;
}
</style>
</head>
<body>
    <div></div>
    <div></div>
</body>
</html>

我明白了:

谢谢你的帮助!

解决方法

如果您可以稍微修改标记,请尝试: http://ryanfait.com/sticky-footer/

CSS Grid – 自动高度行,调整内容大小

CSS Grid – 自动高度行,调整内容大小

我有两个网格嵌套在网格中.不幸的是,正确的嵌套网格.grid-3设置行的高度,以便左右网格都是相同的高度,额外的空间在具有类.right的div之间共享.如何设置右嵌套网格的行以调整内容的大小,因此它们与左嵌套行的高度相同?
div {
  border: 1px dotted black;
}
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  grid-auto-rows auto;
}

.grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows auto;
}

.left {
  background-color: red;
}
 
.right {
  background-color: green;
}
<div>
      <div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
     </div>
     <div>
         <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
     </div>
</div>

解决方法

您可以尝试minmax(min-content,max-content) ref
div {
  border: 1px dotted black;
}
.grid-2 {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  grid-auto-rows: minmax(min-content,max-content);
}

.grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows: minmax(min-content,max-content);
}

.left {
  background-color: red;
}
 
.right {
  background-color: green;
}
<div>
      <div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
        <div>L</div>
     </div>
     <div>
         <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
        <div>R</div>
     </div>
</div>

CSS – div宽度取决于上面的图像大小

CSS – div宽度取决于上面的图像大小

<html><head>
    <title></title>
    <Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">

    .Box {background:gray;border:3px solid black;float:left;}

    </style>
</head>

<body>
   
<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box">
    <img src="http://i.stack.imgur.com/shWOu.jpg">
    <p>Lorem ipsum dolor sit amet,consectetur adipiscing elit. Vestibulum mattis ante ac sapien pellentesque vitae condimentum odio euismod. In purus nibh,ullamcorper in suscipit non,scelerisque eget sem. </p>
</div>
</body></html>

正如你现在可以看到的那样,带有黑色边框的框具有自动宽度,可以适应内部的内容.问题是我想要框的大小调整到内部的图像的宽度.因此,如果图像具有像示例(红色框)一样的宽度,则下面的文本应该以蓝点标记停止,并转到新行.

但是我该如何做呢?

解决方法

您的请求的问题是,如果div没有特定的宽度,文本不会“知道”什么时候包装,这就是为什么它使用外部div的宽度…

所以…您需要向外部div添加宽度,或者在使用围绕图像文本的div的情况下,该div中的宽度.

编辑:

干得好:
http://jsfiddle.net/jnmtu/

我做了一个测试(在我的例子是第三个)与一个表来测试它,并刷新我的想法,它如何工作与表,然后我应用到CSS的方式.

怎么运行的:

您需要具有最小宽度(1%)的周围div,并将其显示为表格;那么内部div(对应于“单元格”)应该有一个自动高度和隐藏的溢出,这是需要“强制”它来拉伸div的宽度高度(这是一个常见的技巧).

注意:我没有在Internet Explorer中测试,它可以与Firefox和Safari一起使用.

css – Firefox中具有位置相对和内容绝对错误的表格单元格

css – Firefox中具有位置相对和内容绝对错误的表格单元格

我真的不知道我的代码有什么问题……

细胞相对定位,形状绝对定位.在每个浏览器中它都应该工作,但不是Firefox ……

表CSS有问题吗?

CSS

.table                              { display: table; width:100%; height:100%; table-layout: fixed; }
.row                                { display: table-row; height: 1px; }
.cell                               { display: table-cell; vertical-align: middle; position: relative; }
.menu .cell                         { width: 33.33%; border: 1em solid #000; font-size: 1.14em;
                                    background: #fff; background-clip: padding-Box; vertical-align: top; position: relative; }

.menu .cell header                  { padding:.5em 1em; background-color: #383430; color: #fff; line-height: 1.2; position: relative; }
.menu .cell .content                { padding:2em 1em 3em 1em;}
.menu .cell h3                      { font-size: 1em; text-transform: uppercase; text-decoration: underline; font-weight:300;} 
.menu .cell ul                      { margin: 0; padding: 0; list-style: none; }
.menu .cell li                      { line-height: 1.4; padding:0.25em 0; border-bottom: 1px solid #ecece6;}
.menu .cell li:last-child           { border-bottom: none; margin-bottom: 0;}



.menu .like header:before           { content : 'on aime !'; position: absolute; bottom: 100%; left: 1em; 
                                    text-transform: uppercase; font-size: .8em; padding: 3.5em .5em .5em .5em; border-radius: 1em 1em 0 0; 
                                    background: #dd582a url(imgs/on-aime.png) center .5em no-repeat; Box-shadow:  0px 0px 2px 0 rgba(0,.5); }


.menu .favorite                     { position: absolute; bottom: -.75em; right: -.75em;  display: block; width: 100%; overflow: hidden;}
.menu .favorite input               { position: absolute; top: -30em;}

.menu .favorite label,.menu .favorite label:before        { background-color: #dd582a; height: 32px; white-space: Nowrap;
                                    float: right;  color: #fff; background-image: linear-gradient(#dd582a 50%,#bd5d3b 100%); }
.menu .favorite label:hover,.menu .favorite label:hover:before{background-image: linear-gradient(#bd5d3b 5%,#dd582a 50%); }

.menu .favorite label               { text-align: center; font-size: 24px; width: 32px; display: block; 
                                    line-height: 28px; border-radius: 4px; cursor: pointer;}

.menu .favorite label:before        { content: "Add to favorite"; display: block; position: absolute; right: 34px;
                                    padding:0 8px; font-size: 14px; line-height:32px  }
.menu .favorite input:checked + label { color: #e77248; background-color: #fff;background-image: linear-gradient(#ffffff 50%,#bfbfbf 100%); }
.menu .favorite input:checked + label:hover{background-image: linear-gradient(#bfbfbf 5%,#fff 50%);}
.menu .favorite input:checked + label:before { content: "Like"}

HTML

<div>

    <div>
<div>
    <div >
        <header>100 $</header>
        <div>
            <h3>Title 1</h3>
            <ul>
                <li>Item 1</li>
                <li>Item 2</li>
                <li>Item 3</li>
                <li>Item 4</li>
                <li>Item 5</li>
                <li>Item 6</li>
            </ul>
        </div>
        <form>
            <input id="bal-menu2" type="checkBox" name="bal-menu2" value="favorite" />
            <label for="bal-menu2">♥</label>
        </form>
    </div>
</div>
        <div>
    <div >
        <header>100 $</header>
        <div>
            <h3>Title 1</h3>
            <ul>
                <li>Item 1</li>
                <li>Item 2</li>
                <li>Item 3</li>
                <li>Item 4</li>
                <li>Item 5</li>
                <li>Item 6</li>
                <li>Item 7</li>
                <li>Item 8</li>
            </ul>
        </div>
        <form>
            <input id="bal-menu2" type="checkBox" name="bal-menu2" value="favorite" />
            <label for="bal-menu2">♥</label>
        </form>
    </div>
</div>
    </div></div>

这是一个小提琴

http://jsfiddle.net/warface/8bWUe/2/

看看firefox,你会注意到“添加到收藏夹”的形式相互叠加,但在其他浏览器中它定位得很好.

有关如何使其工作的任何线索,它应该像Chrome,Safari,IE8,……?

编辑

经过一些研究……自2000年以来Firefox就出现了这个问题

https://bugzilla.mozilla.org/show_bug.cgi?id=63895

而他们似乎没有给它一个中指来解决它…在地狱火灾!

解决方法

这是一个修复,它采用修改后的.cell> div {position:relative}并将高度:100%添加到div.

CSS

.row { display: table-row; height:100%; }
.cell div {height:100%; position: relative }

这是udpated小提琴

http://jsfiddle.net/8bWUe/19/

适用于FF v22.0

css – IE6位置:绝对相对容器调整大小

css – IE6位置:绝对相对容器调整大小

我在IE6中有这个bug.我在这里展示了 http://fiddle.jshell.net/bfXGC/2.当你增加容器的高度时,绝对块的位置会更新到容器的底部.当您增加内部内容的高度时,绝对块的位置不会更新.如何在IE6中修复此行为

解决方法

我唯一能让这个工作的方法是每次更新时在绝对div上设置css top值:

$("div.absolute").css("top",$(".inner").height());

这里有一个工作示例. http://fiddle.jshell.net/bfXGC/14/

今天的关于CSS:页脚位置绝对或相对取决于内容大小?css设置页脚的分享已经结束,谢谢您的关注,如果想了解更多关于CSS Grid – 自动高度行,调整内容大小、CSS – div宽度取决于上面的图像大小、css – Firefox中具有位置相对和内容绝对错误的表格单元格、css – IE6位置:绝对相对容器调整大小的相关知识,请在本站进行查询。

本文标签: