首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止页脚与浮动的重叠组合

防止页脚与浮动的重叠组合
EN

Stack Overflow用户
提问于 2019-10-01 19:06:26
回答 2查看 322关注 0票数 1

我创造了一个泡泡对话html。现在我正试着给它添加一个脚注。(页脚中的页脚类似代码)

代码语言:javascript
复制
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul li {
  display: inline-block;
  clear: both;
  padding: 5px;
  border-radius: 20px;
  margin-bottom: 2px;
  width: 80%;
  background: #eee;
}

.him {
  float: left;
  border: 1px solid #000000;
}

.me {
  float: right;
}

#footer {
  height: 30px;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  background-color: red;
  color: white;
  text-align: center;
}

body {
  padding-bottom: 30px;
}
代码语言:javascript
复制
<div>
  <div>
    <ul>
      <li class="me">N-19</li>
      <li class="me">N-18</li>
      <li class="him">N-17</li>
      <li class="me">N-16</li>
      <li class="me">N-15</li>
      <li class="me">N-14</li>
      <li class="him">N-13</li>
      <li class="me">N-12</li>
      <li class="me">N-11</li>
      <li class="me">N-10</li>
      <li class="me">N-9</li>
      <li class="me">N-8</li>
      <li class="him">N-7</li>
      <li class="me">N-6</li>
      <li class="me">N-5</li>
      <li class="me">N-4</li>
      <li class="me">N-3</li>
      <li class="me">N-2</li>
      <li class="me">N-1</li>
      <li class="him">N</li>
    </ul>
  </div>
  <div id="footer">
    Footer
  </div>
</div>

但我没有看到谈话的最后一行。问题是,由于< li >元素的float属性,页脚正在重叠它们。

我怎么才能避免呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-01 20:12:11

看看这个:css gridcss的一个非常好的特性。

我们可以将屏幕划分为列和行数。我用的是css-网格。

有关css网格的更多信息,请阅读

https://css-tricks.com/snippets/css/complete-guide-grid/

代码语言:javascript
复制
ul {
      list-style: none;
      margin: 0;
      padding: 0;
      display:grid;
      grid-template-columns:33% 33% 34%;
  
    }

    ul li {
      display: block;
      clear: both;
      padding: 5px;
      border-radius: 20px;
      margin-bottom: 2px;
      
      background: #eee;
    }

    .him {
      grid-column:1/3;
      border: 1px solid #000000;
    }

    .me {
    grid-column:2/4
      
    }

    #footer {
      height: 30px;
      position: fixed;
      bottom:0;
      
      width: 100%;
      background-color: red;
      color: white;
      text-align: center;
    }

    body {
      padding-bottom: 30px;
    }
代码语言:javascript
复制
<div>
      <div>
        <ul>
          <li class="me">N-19</li>
          <li class="me">N-18</li>
          <li class="him">N-17</li>
          <li class="me">N-16</li>
          <li class="me">N-15</li>
          <li class="me">N-14</li>
          <li class="him">N-13</li>
          <li class="me">N-12</li>
          <li class="me">N-11</li>
          <li class="me">N-10</li>
          <li class="me">N-9</li>
          <li class="me">N-8</li>
          <li class="him">N-7</li>
          <li class="me">N-6</li>
          <li class="me">N-5</li>
          <li class="me">N-4</li>
          <li class="me">N-3</li>
          <li class="me">N-2</li>
          <li class="me">N-1</li>
          <li class="him">N</li>
        </ul>
      </div>
      <div id="footer">
        Footer
      </div>
    </div>

票数 3
EN

Stack Overflow用户

发布于 2019-10-01 19:58:51

由于padding-bottom不能在这里应用,所以我的答案不适用于这种情况,因此我对网格布局的备选方案进行了研究,并令人惊讶地为页脚块的fixed定位做了研究。

在本例中,我决定将代码保留在没有<ul>的情况下,后者有相当大的默认元素css值列表。我假设第一条消息总是来自用户,并使用:not() CSS选择器来设置回复块的样式。您可以根据您的HTML将.user:not(user)更改为任何类,如.me.him

代码语言:javascript
复制
section {display:flex;flex-direction:column}

section * {
  width: 75%;
  border: 1px solid #757575;
  border-radius:20px;
  padding:2px 10px;
  margin-bottom:2px
}

.user {
  background:#ccc;
  margin-left: auto
}

section :not(.user) {
  background:#eee
}

section :not(.user) + .user, .user + :not(.user) {
  margin-top:5px
} 

footer { 
  height: 30px;
  position: sticky; /* Yes. It works now */
  bottom: 0;
  background: #000;
  color: white;
  text-align: center; 
  line-height: 28px
}
代码语言:javascript
复制
<section>
      <div class="user">Need some help with HTML</div>
      <div class="user">And CSS maybe</div>
      <div class="user">Want it to work with long-lenth messages as well, you know. And in all the browsers, even IE...</div>
      <div>Sure</div>
      <div>Lets test this one</div>
      <div>Quite a good in terms of browser support in 2019</div>
      <div class="user">Awsome!</div>
      <div class="user">Thank you so much</div>
      <div>You are welcome</div>
      <div class="user">Goodbye</div>
</section>

<footer>
<p>Sticky Footer</p>
</footer>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58190850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档