0

ヘッダーとして機能するタイトルの下にテキストと画像を並べようとしていますが、画像がエントリ間の仕切りを捨て続け、ページの配置を台無しにします。外観は次のとおりです (Django テンプレートはここで使用されています)。

コードは次のとおりです。

<script src="/static/js/downloadEntry.js" type="text/javascript"></script>
{% for entry in entries %}
  <div class="entry">
      <label class="titleText">{{ entry.title }}</label>
      <div class="contentContainer">
        {% if entry.image %}
            <img class="image" src="{{ entry.image.url }}">
        {% endif %}
        <p class="contentText">{{ entry.content }}</p>
      </div>
      <script>styleTitle("{{ entry.title }}");</script>
  </div>
  <hr class="entryDivider">
{% endfor %}

関連する CSS:

.entryDivider {
    margin-top: 10px;
    size: 1px;
    width: 66%;
}
.entry {
    width: 66%;
    margin-top: 30px;
    margin-bottom: 10px;
}

 .titleText {
    font-family: "Helvetica Neue";
    font-size: 24px;
    font-weight: bold;
    color: #666666;
    text-align: left;
    font-style: normal;
    text-transform: uppercase;
    display: block;
    margin-bottom: 15px;
 }

.contentContainer {
    width:100%;
    display: block;
}

.contentText {
    font-family: "Helvetica Neue";
    font-size: 14px;
    text-align: left;
    font-weight: 200;
    display: block;
    overflow: hidden;
}

.image {
    float: left;
    display: block;
    background-color: #ff0000;
    margin-right: 15px;
    width: 90px;
    height: 80px;
}

いくつかの異なるテクニックを試しましたが、役に立ちませんでした。理想的には、 http://jsfiddle.net/cSazm/5/のようになり ますが、div コンテナー内にあります。何かのようなもの:

[Title]
[Image, if one exists] [Content]
[Divider]

これがどのようにレンダリングされるかのスクリーンショットを次に示します。

スクリーンショット

助言がありますか?私はフロントエンドの仕事の経験があまりありません (これはおそらく明らかです)。

4

4 に答える 4

0

フロート要素の後に、フロートが「混ざり合わない」ようにクリア要素が必要です

CSS

.clearfix {
   clear:both;
   height:0px;
}

HTML

<div>
    <img src="http://lorempixel.com/g/80/80/"  />

    <p>
    Lorem ipsum dolor sit amet, 
    </p>

</div>    
<br class="clearfix" />
<div>
    <img src="http://lorempixel.com/g/80/80/"  />

    <p>
    Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.
    </p>

</div>  

JSFiddle

于 2013-08-15T19:20:19.130 に答える
0

これはあなたがしようとしていることですか?JSFiddle

div{
    display: block; 
    width: 100%;
    overflow: hidden;
    padding:10px 10px 0;
}    

h2 {
    font-weight: bold;
    font-size: 20px;
    margin-bottom: 5px;
}
img{
    float:left;
    margin-right: 10px;
    vertical-align:top;
}    

p{
    display: block;
    overflow: hidden;    
}    

div hr {
    clear: both;
    border: none;
    padding-top: 5px; 
    margin:0;
    border-bottom: 1px solid #ccc;
}
于 2013-08-15T19:20:32.973 に答える