ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

CSSテクニックコミュのボックスの外に文字が出てしまいます…

  • mixiチェック
  • このエントリーをはてなブックマークに追加
すいません、全然原因に検討がつかないので書き込ませてください;
あるボックスを作り、そこへ写真を左に、
文字を右にfloatしているのですが、
(実際は両方leftで、視覚的に右にまわりこんでいるように見えるだけですが)
ひとつのボックスの上段に名前、
下段に写真と文字が入っています。
それをテンプレートとして複数コピペして下に配置して行くと、
なぜかその下段の文字の最後の文字がすべてのボックスの一番下に
飛び出したように表示されてしまうのです…。
ボックス3つまではなにごともないのですが、
4つ以降を配置すると、最後の文字が徐々に現れるような
感じで出現します。。

下にソースを載せますので
なにか問題があるかアドバイスをお願いします;

HTML
----
<div class="dogs-box">
<div class="dogs-name">
<p class="dogs-name-left"><input type="radio" name="dogs" value="オーエン" /> オーエン(オス)</p>
<p class="dogs-name-right">■Entry No.01</p>
</div>
<div class="dogs-prof">
<p>
<img src="./images/dogs-img01.jpg" alt="" />
</p>
<ul>
<li class="dogs-answer-item">■Answer</li>
<li>1. <span>○○○ ■■ □□</span></li>
<li>2. <span>とてもラブリーなやんちゃ坊主です。破壊されたリモコンは数知れず、隙あらば私の寝床で寝ようとします。</span></li>
<li>3. <span>いつも食べているドッグフードはビタワン</span></li>
</ul>
</div><!-- end of dogs-prof // -->
</div><!-- end of dogs-box // -->
----

CSS
----
/******************/
/*** dogs style sheet ***/
/******************/

#dogs-read
{
float: left;
line-height: 130%;
margin: 20px 0;
margin-right: 15px;
text-indent: 1em;
width: 285px;
}

#dogs-question
{
float: left;
width: 230px;
}

#dogs-question h2
{
margin-top: 20px;
margin-bottom: 5px;
}

#dogs-question ul
{
font-size: 90%;
list-style-type: none;
margin: 0;
margin-bottom: 40px;
}

#dogs-question ul li
{
border-bottom: dotted 1px #0d265e;
padding: 5px 0;
}

#dogs-contents
{
float: left;
width: 530px;
}

.dogs-box
{
float: left;
border: solid 1px #0d265e;
border-top: solid 6px #0d265e;
margin-bottom: 20px;
width: 530px;
}

.dogs-name
{
background-color: #7cb63f;
color: #ffffff;
float: left;
padding-top: 5px;
padding-bottom: 5px;
padding-left: 8px;
padding-right: 8px;
width: 514px;
}

.dogs-name p
{
float: left;
width: 257px;
}

.dogs-name-left
{
color: #0d265e;
font-weight: bold;
}

.dogs-name-right
{
text-align: right;
}

.dogs-prof
{
float: left;
font-size: 70%;
padding: 5px;
width: 520px;
}

.dogs-prof p
{
float: left;
}

.dogs-prof p img
{
float: left;
}

.dogs-prof ul
{
float: left;
list-style-type: none;
padding-left: 20px;
margin-top: 5px;
text-indent: -1em;
width: 240px;
}

.dogs-prof ul li span
{
border-bottom: dotted 1px #0d265e;
width: 240px;
}

#dogs-form
{
float: left;
border: solid 1px #0d265e;
border-top: solid 6px #0d265e;
margin-top: 40px;
margin-bottom: 20px;
padding: 10px;
width: 510px;
}

#dogs-form p
{
background-color: #ff0000;
height: 500px;
margin: 10px 0;
width: 400px;
}

コメント(6)

html を css に沿って全部ください。

float の clear がされていないのが原因だと思いますが。
とりあえずclearすればいいんじゃないかな。
と、ろくにソースを読まずにカキコ。
>マッツさん、hirokiさん
おおお、ありがとうございます;
clearしたら消えました…。

なるほど、clearが原因なんですね。。
でもなんでboxの外に文字がでるんだろう。
今までなかった経験なのでいい勉強になりました。
ありがとうございました!
> なんでboxの外に文字がでるんだろう
まずブロックの大きさに対して、その内容がそれを超えた場合にどのように表示されるか、はoverflowでコントロールできます。いくらでもはみ出せるよ。

で、それが理解できたらブロックの高さの算出について理解してみると良いと思います。
http://www.mozilla.gr.jp/standards/webtips0021.html
>hirokiさん

書いてもらった内容については、大体理解してるつもりです。
ブロックをすべてfloatさせて高さが思惑通りに反映されるようにしていました。
(事実、思惑通り表示されてた)
それに、内容自体はボックスの高さに対して十分に小さい状態でした。(つまりはみ出すはずがない)
それに、ボックス内に情報はちゃんと表示されてるんです。
が、最後の2,3文字だけ、再びボックスの外に出現してるんですよね。
(たとえばボックスのインライン要素の最後が〜〜である。だった場合、ボックスの中にも〜〜である。までしっかりと表示されつつ、ボックスの外に〜〜である。という文字が再び出現してる感じです)

ただはみ出してるとかならわかるんですが、
なぜ同じ文字が再度出現してたのか検討がつかなくて・・。
それで書き込んだ次第です。
>(たとえばボックスのインライン要素の最後が〜〜である。だった場合、ボックスの中にも〜〜である。までしっかりと表示されつつ、ボックスの外に〜〜である。という文字が再び出現してる感じです)

僕もその現象には遭遇したことがあります。

親ボックスの幅に対してそれよりも大きい幅の子ボックスがフロートであった場合なんかに起こる気がしますが、いまいち再現性もなく、おそらくバグなんでしょうね。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

CSSテクニック 更新情報

CSSテクニックのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング