【问题标题】:Make a div extend all the way down on my page?让 div 在我的页面上一直向下延伸?
【发布时间】:2016-02-13 22:57:20
【问题描述】:

这是我的页面:http://goodshitdesign.no/ (这是我设计标志的爱好的作品集)

我只是想在我的标题下将页面分成两部分,左侧是一个信息框,右侧是一个灵活的徽标网格。

问题是,当我添加太多徽标时,页面会变得比原来的 100% 长,并且信息框在底部被剪短,并且徽标开始出现在其下方。您可能会在页面上看到我的意思。

我无法将信息框的位置设为绝对位置,因为那样徽标会位于信息框的后面。

我不能将 logogrid 放在它自己的 div 中,因为这样行和列不会调整到最适合页面大小的大小。

有人可以帮帮我吗?将不胜感激!

【问题讨论】:

  • 你试过使用 flex-box 吗? .infobox<center> 应该放在一个容器中。容器可以使用display: flex.infobox<center>可以使用flex: grow | shrink | basis | etc

标签: css responsive-design position grid-layout portfolio


【解决方案1】:

你可以使用上面提到的 flexbox,或者像这样的容器使用新的 css:

div.infobox {
width: 30%;
height: 100%;
background-color: #ebebeb;
text-align: center;
display: inline-block;
float: left;
}

为您的徽标容器 div:

div.logobox {
position: absolute;
top: 0;
right: 0;
width: 70%;
height: 100%;
background-color: #d2d2d2;
font-family: 'Source Sans Pro', sans-serif;
display: block;
float: left;    
}

父级:

.parentdiv {
 position: relative;
 height: 100%; }

徽标 div:

div.logo {
display: inline-block;
margin: 10px;
width: 200px;
-webkit-transition: all 0.1s ease;
-moz-transition: all 0.1s ease;
-o-transition: all 0.1s ease;
-ms-transition: all 0.1s ease;
transition: all 0.1s ease; }

要在调整大小时更改 .infobox 的高度,请将此 javascript 添加到页面中的脚本标记中:

    $(document).ready(function() {
 $(window).on("resize",function() {

      var bodyheight = $(document).height();

      $(".parentdiv").height(bodyheight);
 });});

【讨论】:

  • 这根本不起作用,这有点像我提到的“我不能将 logogrid 放在它自己的 div 中,因为这样行和 collums 不会调整到最适合页面大小的大小。 "如果您现在刷新我的页面,您就会明白我的意思。每行固定有 5 个徽标,如果太宽,它会再次进入信息框下方
  • 我明白你现在用徽标在说什么了。我需要看看你的 css 正在做什么以在浏览器调整大小时改变它们的大小
  • 我一直在玩你的基础 CSS,我猜你想让整个页面“响应”。因此,您可能希望查看 Flexbox 或 Bootstrap css 以轻松完成此操作。问题是我们可以将这些容器并排设置,给它们百分比宽度,绝对定位,但是这些都不能控制右侧的徽标 div,你需要更多的逻辑
  • 好吧,我同意。是否有某种方法可以让徽标在 div 内灵活堆叠,就像它们周围根本没有 div 一样?
  • 好的,当我将答案中编辑的 css 结合起来时,我能够让它们留下来,并加倍堆叠。这应该处理平板电脑大小的屏幕。我删除了信息框和徽标 div 上的最小宽度,以及其他各种更改
【解决方案2】:

尝试如下改变

.infobox {
    width: 30%;
    height: 100%;
    background-color: #ebebeb;
    text-align: center;
    display: inline-block;
    float: left;
    min-width: 350px;
   /*additional*/
    position: absolute;
    left: 0;
}
.logobox {
    width: 70%;
    height: 100%;
    background-color: #d2d2d2;
    font-family: 'Source Sans Pro', sans-serif;
    display: block;
    float: right;/*left to right*/
}

希望有帮助

【讨论】:

  • 你真正需要的是更多的 html 和 css 的 logo div 依赖于屏幕宽度
  • 我已经修改了css。尝试在下面添加现有代码,如下所示。当屏幕缩小时,您需要使用媒体查询来减小字体大小以使其响应 div.parentdiv { overflow: hidden;位置:相对; /*移除高度 100%*/ } div.infobox { position: absolute;左:0;底部:0px; /*删除最小宽度*/ } @media all and (max-width: 768px) { div.pointslist ul li { font-size: 15px; } 输入[type="submit"] { 宽度:190px;高度:42px;字体大小:15px; } }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多