【问题标题】:Dynamic margins using css使用 css 的动态边距
【发布时间】:2015-01-31 00:17:00
【问题描述】:

我对网页设计很陌生,但知道大部分基本知识,但请尽量保持相对简单)所以,我正在设计一个网站,我希望在其中有灰色背景主页的两侧,我设法做到了。但是,如果调整窗口大小,我希望页面“吃掉”灰色空间,就像 Marriott hotel 使用我尝试查找他们的代码一样,但它很多而且我不认为他们使用 CSS 而是 JavaScript调整大小动态。我对吗?如果是这样,有没有办法用 CSS 做到这一点?还是java,不过比较简单,我很新!

另外,我目前给包装器设置了88% 的宽度,并使用12% 作为灰色背景。使用% 是针对不同屏幕分辨率的最佳解决方案吗? (请记住,它最多适用于 PC 和平板电脑,没有智能手机)

【问题讨论】:

  • 我认为您的意思是 JavaScript,而不是 Java...
  • 它们不一样吗?)哈哈,对不起,就像我说的那样——我对整个编程都是新手!感谢指正

标签: javascript css dynamic background margin


【解决方案1】:

使用百分比可能很有用,但如果您真的希望在较小的屏幕分辨率上显示您想要的效果,您可以使用media queries

媒体查询效果很好,因为它们甚至可以根据设备方向更改样式:

@media (min-width: 700px) and (orientation: landscape) { ... }

Using a media query。 (放大和缩小窗口以查看它的实际效果。)

【讨论】:

  • 好吧,这看起来比我希望的要复杂一些,但我似乎还是会使用它。感谢您的提示!
  • 真的没那么复杂。如果您遇到困难,那么只需谷歌它,您会发现大量有关媒体查询的教程!祝你好运! @托尼
  • 好的,那么不同的问题:什么是更好的做法 - 在“全局”样式表中包括不同的媒体查询或根据媒体查询加载不同的样式表?什么更强大/你会选择什么?
  • 老实说,这取决于你!正是人们喜欢的。我个人将它保存在一个大的“全局”样式表中,所以我知道它在哪里! @托尼
  • 在查看了主要网站后,我决定这样做。谢谢! Aaaand 我已经有另一个问题了!如果 max-width: 1100px; 是否可以将宽度定义为 88% 并为 100% 分配规则?还是我的宽度现在必须以像素为单位?我都试过了 - 只有当我使用像素而不是 % 时它才有效。
【解决方案2】:

我认为你想要的是以下内容:

  1. 为正文添加背景。
  2. 添加一个具有 X px 和自动边距的 div,它将居中。

因此,当您调整窗口大小时,这将“吃掉”隐藏灰色背景的主体边缘。

如果您想要根据屏幕宽度不同的网络尺寸,那么您正在输入媒体查询。

【讨论】:

  • 这就是问题所在,我想避免给出像素尺寸,因为分辨率变化很大,从 900 像素到大屏幕上的 2000 像素。这就是我最初从 % 开始的原因。
【解决方案3】:

您正在寻找:

#wrapper { width: 900px; margin: 0 auto; }

这会将您的包装器(宽度为 900 像素)放置在边距均匀的一侧,然后随着窗口的变化重新计算边距。

我会给你的包装器设置一个宽度,因为设置宽度为 88% 意味着中心内容将始终是窗口的 88%,这意味着你将始终有边距。

【讨论】:

  • 如果我以像素为单位设置最小宽度,它会起作用吗?它会覆盖 % 规则吗?说88%?但是最小宽度:900px?
  • 是的。这意味着您的包装器将始终占据浏览器的 88%,直到它尝试低于 900 像素。此时包装器将简单地坚持 900px 宽度。
  • 啊,但它不会占用灰色空间,它只会创建一个水平滚动,我明白了。谢谢!
【解决方案4】:

你可以这样做

这里是小提琴:http://jsfiddle.net/fcvbkv5w/

body {
  text-align: center;
}
#navbar {
  width: 100%;
  margin-left:0%;
  background-color: black;
  text-align: center;
}
#fwcenter {
  width: 70%;
  position: relative;
  text-align: center;
  background-color: red;
}

@media (max-width: 700px){ 
 #fwcenter{
     width:100%;
    }
}
<div id="navbar">
  <center>
    <div id="fwcenter">
      <div id="container">
        Website content
      </div>
    </div>
  </center>
</div>

【讨论】:

  • 这行得通,但我试图用百分比而不是像素来做,所以它在所有尺寸的屏幕上看起来都不错。 800 在分辨率为 2000 像素的屏幕上看起来很有趣
猜你喜欢
  • 2019-06-27
  • 2012-11-11
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 2012-02-12
  • 2014-10-06
  • 2015-03-05
  • 2012-02-28
相关资源
最近更新 更多