如何将元素正确对齐?

时间:2018-12-31 07:04:03

标签: html css

因此,我在左侧有一个菜单项“页眉”(深色)。在右侧,我将看到我的英雄“主页”页面和波纹管“部分”。我想要的唯一滚动是上/下,并且没有左右并排,而且我想将主要/部分页面居中。

因此,第一个“标题”项将是:

width: 80px;

现在,我希望其他元素(例如“ main”)坚持该菜单项。目前,我的问题是我必须不断更改“英雄”页面的编号,以便它可以正确地居中对齐,但是这很痛苦,我似乎无法正确输入数字,我总是会看到任一页面就像菜单后面的2px或相反。

那么有什么方法可以重写代码,以便即使更改菜单宽度,“主”部分也将自动粘贴在“菜单”栏的一侧?

https://codepen.io/MariusZMM/pen/xmPraj

<div id="header"></div>

  <div id="main">
    <div class="box"></div>

    <div id="sections">
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla sunt repudiandae unde doloremque eos sed
        dolorem sit quae totam impedit. Exercitationem ad alias quae ipsam, maxime molestias quibusdam fugit
        doloribus.
      </p>
    </div>
  </div>

CSS

body {
  margin: 0;
  padding: 0;
}

#header {
  background: #222629;
  height: 100%;
  left: 0;
  position: fixed;
  text-align: center;
  top: 0;
  z-index: 1;
  overflow-y: auto;

  /* Menu size*/
  width: 80px;
}

#main {
  position: absolute;
  height: 100%;
  background-color: #856030;

  /* Hero page size*/
  margin-left: 6.25%;
  width: 97.5%;
}

.box {
  width: 100%;
  position: relative;
  height: 100%;
}

#sections {
  position: absolute;
  background-color: #347424;
}

2 个答案:

答案 0 :(得分:0)

我想我已经解决了,并在CodePen上进行了更新 https://codepen.io/MariusZMM/pen/Newvqb

所以我所做的是,在“主要”部分中使用“左”,并将其设置为与菜单相同的px计数。然后还添加了“ left:0;”表示“标题”

这是处理此问题的正确方法还是有更好的方法?

body {
  margin: 0;
  padding: 0;
}

#header {
  background: #222629;
  height: 100%;
  left: 0;
  position: fixed;
  text-align: center;
  top: 0;
  z-index: 1;
  overflow-y: auto;

  /* Menu size*/
  width: 80px;
}

#main {
  position: absolute;
  height: 100%;
  right: 0;

  background-color: #2c2419;

  /* Hero page size*/
  left: 80px;
  width: auto;
}

.box {
  width: 100%;
  position: relative;
  height: 100%;
}

#sections {
  position: absolute;
  background-color: #347424;
  width: 100%;
}

答案 1 :(得分:0)

基于我的理解,我修改了如下代码。 动态调整宽度的另一种方法是使用javascript。

body {
  margin: 0;
  padding: 0;
}

#header {
  background: #222629;
  height: 100%;
  left: 0;
  position: fixed;
  text-align: center;
  top: 0;
  z-index: 1;
  overflow-y: auto;

  /* Menu size*/
  width: 6%;
}

#main {
  position: absolute;
  height: 100%;
  background-color: #856030;

  /* Hero page size*/
  margin-left: 6%;
  width: 94%;
}

.box {
  width: 100%;
  position: relative;
  height: 100%;
}

#sections {
  position: absolute;
  background-color: #347424;
}
  <div id="header"></div>

  <div id="main">
    <div class="box"></div>

    <div id="sections">
      <p>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla sunt repudiandae unde doloremque eos sed
        dolorem sit quae totam impedit. Exercitationem ad alias quae ipsam, maxime molestias quibusdam fugit
        doloribus.
      </p>
    </div>
  </div>