子弹(ul)改变位置,而代码是相同的

时间:2017-04-07 21:17:00

标签: html css

我在我的简单html页面中插入<ul>,它的行为非常奇怪。 在这里你可以看到子弹是好的: Normal

但经过多次刷新(代码无变化)后,它开始看起来像这样 not normal

如果我再次刷新页面几次,它会再次显示正常。它一直在继续。

以下是HTML:

            <div class="image-paragraph">
            <img class="image-left" src="image/nozh_fmt.jpg" alt="knife" />
                    <img class="image-left" src="image/perchatki_fmt.jpg" alt="gloves" />
                <p class="Text-main">

                    <ul>
                        <li>Яхтенные перчатки (лучше приобрести специальные).</li>
                        <li>Солнцезащитные очки на веревочке.</li>
                        <li>Боцманский нож, фонарик с запасными батарейками.</li>
                    </ul>
                </p>
            </div>

以下是款式:

div.image-paragraph {
    display: table;
    width: 100%;
}
img.image-left, svg.image-left{
    float: left;
    margin-right: 0.3rem;
    margin-bottom: 0.5rem;
    max-width: 30%;
}
.image-left:last-of-type{
    margin-right: 1rem;
}
p.Text-main {
    font-size: 1em;
    margin-bottom: 0px;
    margin-left: 0px;
    margin-right: 0px;
    text-align: justify;
    text-indent: 0px;
}

它可以是什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用ul {overflow: hidden;}

这里有一个jsFiddle与您的代码,我只是添加了这一行:https://jsfiddle.net/sm3zb6ca/

进一步说明,使用ul {overflow: auto;}可以正常工作

  

浮动,绝对定位的元素,阻止不是块框的容器(例如内联块,表格单元格和表格标题),以及带有溢出框的块框。除了&#39;可见&#39; (当该值已传播到视口时除外)为其内容建立新的块格式化上下文。

有关视觉格式的更多信息,请访问:https://www.w3.org/TR/CSS2/visuren.html#block-formatting

答案 1 :(得分:0)

当你处理float时,你需要注意BFC告诉容器或sibblings如何浮动元素的行为,换句话说:它是否看到浮动并包裹它们或或者根本没有?

如果您点击该链接,则overflow最容易申请。

&#13;
&#13;
div.image-paragraph {
  display: table;
  width: 100%;
}

img.image-left,
svg.image-left {
  float: left;
  margin-right: 0.3rem;
  margin-bottom: 0.5rem;
  max-width: 30%;
}

.image-left:last-of-type {
  margin-right: 1rem;
}

div.Text-main {
  font-size: 1em;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  text-align: justify;
  text-indent: 0px;
  overflow:hidden;
  border:solid;/* see me */
}
&#13;
<div class="image-paragraph">
  <img class="image-left" src="http://dummyimage.com/80x80" alt="knife" />
  <img class="image-left" src="http://dummyimage.com/80x80" alt="gloves" />
  <div class="Text-main">
    <ul>
      <li>Яхтенные перчатки (лучше приобрести специальные).</li>
      <li>Солнцезащитные очки на веревочке.</li>
      <li>Боцманский нож, фонарик с запасными батарейками.</li>
    </ul>
  </div>
</div>
&#13;
&#13;
&#13;

您的代码在.Textmain

上有边框

&#13;
&#13;
div.image-paragraph {
  display: table;
  width: 100%;
}

img.image-left,
svg.image-left {
  float: left;
  margin-right: 0.3rem;
  margin-bottom: 0.5rem;
  max-width: 30%;
}

.image-left:last-of-type {
  margin-right: 1rem;
}

div.Text-main {
  font-size: 1em;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  text-align: justify;
  text-indent: 0px;
  border:solid;/* see me */
}
&#13;
<div class="image-paragraph">
  <img class="image-left" src="http://dummyimage.com/80x80" alt="knife" />
  <img class="image-left" src="http://dummyimage.com/80x80" alt="gloves" />
  <div class="Text-main">
    <ul>
      <li>Яхтенные перчатки (лучше приобрести специальные).</li>
      <li>Солнцезащитные очки на веревочке.</li>
      <li>Боцманский нож, фонарик с запасными батарейками.</li>
    </ul>
  </div>
</div>
&#13;
&#13;
&#13;

注意<p>只能包含短语内容,您应该使用<div>