什么是不使用jQuery填满屏幕的最佳方法

时间:2018-08-10 20:35:08

标签: css css3

我有两个并排的div。 Div1宽度为200像素 和Div2应该填满整个屏幕。 为此,我使用jQuery并使用来检测屏幕,然后从中替换200。 但是,如果我使用这种方式,jQuery会降低浏览器的速度。 因此,我正在寻找一种更好的方法,而不是使用jQuery。 最好的方法是什么?

更新:
我忘了写浮子并没有解决我的问题。

谢谢,我将检查答案。

2 个答案:

答案 0 :(得分:1)

浮动解决方案

body { margin: 0; }

#a {
  background-color: lime;
  width: 200px;
  float: left;
  height: 100vh
}

#b {
  background-color: blue;
  margin-left: 200px;
  height: 100vh;
}
<div id="a"></div>
<div id="b"></div>

css网格

body {
  margin: 0;
}

.gridcontainer {
  display: grid;
  grid-template-columns: 200px 1fr;
  height: 100vh;
}

#a {
  background-color: lime;
  height: 100vh;
}

#b {
  background-color: blue;
  height: 100vh;
}
<div class="gridcontainer">
  <div id="a"></div>
  <div id="b"></div>
</div>

flexbox

body {
  margin: 0;
}

.flexcontainer {
  display: flex;
}

#a {
  background-color: lime;
  width: 200px;
  height: 100vh;
}

#b {
  background-color: blue;
  height: 100vh;
  width: calc(100% - 200px);
}
<div class="flexcontainer">
  <div id="a"></div>
  <div id="b"></div>
</div>

内联块解决方案

body {
  margin: 0;
}

.inlineblockcontainer {
  font-size: 0;
}

.inlineblockcontainer>div {
  display: inline-block;
}

#a {
  background-color: lime;
  font-size: 16px;
  width: 200px;
  height: 100vh;
}

#b {
  background-color: blue;
  font-size: 16px;
  height: 100vh;
  width: calc(100% - 200px);
}
<div class="inlineblockcontainer">
  <div id="a"></div>
  <div id="b"></div>
</div>

答案 1 :(得分:-1)

html,
body,
#container {
  height: 100%;
}

#left {
  width: 200px;
  float: left;
  min-height: 100%;
  background-color: blue;
}

#right {
  width: 100%;
  min-height: 100%;
  background-color: red;
}
<div id="container">
  <div id="left"></div>
  <div id="right"></div>
</div>

https://jsfiddle.net/832ahuqc/6/