2017-03-14 12 views
0

私は任意の数の要素を含むことができる順序付きリストを持っています。各要素はサイズが異なることができますが、サイズに関係なく、順序付きリストの数をコンテンツの最初の行に合わせることが必要です。それでは、私が達成したいことはこれです:順序付きリスト番号をコンテンツの最初の行に揃えます。

  1. Loremのイプサムの嘆き
  2. ... consectetur adipiscing ELIT、AMET座るボックス1

私が持っている問題についての私のjsfiddleを参照してください。

https://jsfiddle.net/txo5bsua/2/

これは、HTMLとCSSはあなたが私はこれで助けることができる私は

.boxes { 
 
    display: table; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 

 
.box { 
 
    display: table-cell; 
 
} 
 

 
.box1 { 
 
    background: orange; 
 
    width: 75%; 
 
} 
 

 
.box2 { 
 
    background: yellow; 
 
}
<ol> 
 
    <li> 
 
    <div class="boxes"> 
 
     <div class="box box1"> 
 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis condimentum massa. Quisque purus nisl, finibus id placerat id, ultricies non magna. Sed justo dui, tristique et metus at, fringilla viverra ipsum. Duis malesuada est eget lectus fermentum, 
 
     vitae pretium eros tempor. Integer eu mi metus. Cras dui ipsum, iaculis ut libero dictum, dapibus consequat orci. Sed semper vitae lorem eu sollicitudin. Curabitur dapibus fringilla facilisis. Nullam facilisis ante in velit maximus gravida. 
 
     </div> 
 
     <div class="box box2"> 
 
     <input type="radio">Yes 
 
     <input type="radio">No 
 
     </div> 
 
    </div> 
 
    </li> 
 
    <li> 
 
    <div class="boxes"> 
 
     <div class="box box1">Box 1</div> 
 
     <div class="box box2">Box 2</div> 
 
    </div> 
 
    </li> 
 
</ol>

を持っているのですか?

+0

それでも.boxesの間のギャップをしたいですか? – sol

+0

(興味深い:私はコンテンツがあなたがFirefox *上で望むやり方とまったく同じようにレンダリングしていると思う。)Google ChromeとSafariでは、コンテンツが始まる前に注文リストの番号の後に改行が表示されている。あなたの目標は、すべてのブラウザで視覚的な改行を取り除くことです)。 – pnkfelix

+0

変更表示:表示するテーブル:クラス.boxのインラインフレックス – chirag

答えて

1

があなたのためにこの仕事をしていますか?あなたのクラス.boxesため

.boxes { 
 
    display:table; 
 
    width: 100%; 
 
    height: 100%; 
 
    float: right; 
 
} 
 
li { 
 
    clear: both; 
 
} 
 

 
.box { 
 
    display: table-cell; 
 
} 
 

 
.box1 { 
 
    background: orange; 
 
    width:75%; 
 
    } 
 

 
    .box2 { 
 
     background: yellow; 
 
    }
<ol> 
 
    <li> 
 
     <div class="boxes"> 
 
      <div class="box box1"> 
 
       Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis condimentum massa. Quisque purus nisl, finibus id placerat id, ultricies non magna. Sed justo dui, tristique et metus at, fringilla viverra ipsum. Duis malesuada est eget lectus fermentum, vitae pretium eros tempor. Integer eu mi metus. Cras dui ipsum, iaculis ut libero dictum, dapibus consequat orci. Sed semper vitae lorem eu sollicitudin. Curabitur dapibus fringilla facilisis. Nullam facilisis ante in velit maximus gravida. 
 
      </div> 
 
      <div class="box box2"> 
 
       <input type="radio">Yes 
 
       <input type="radio">No 
 
      </div> 
 
     </div> 
 
    </li> 
 
    <li> 
 
     <div class="boxes"> 
 
      <div class="box box1">Box 1</div> 
 
      <div class="box box2">Box 2</div> 
 
     </div> 
 
    </li> 
 
</ol>

+1

(元のコードに対してdiffが何であるか不思議な人たちのために:Mersは '.boxes'に' float:right'を追加し、 'li {clear:both}'を追加しました。 'li {clear:both} 'を省略すると、2つの数字の両方が表の最後に表示されます) – pnkfelix

+0

これはChromeとIEの両方で私の問題を解決しました。ありがとうございました! – Fmacs

0

更新された回答。それはまた、IE上で

使用ディスプレイを動作します:インラインテーブル

デモ:jsfiddle

.boxes { 
 
    display:inline-table; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 

 
.box { 
 
    display: table-cell; 
 
} 
 

 
.box1 { 
 
    background: orange; 
 
    width:75%; 
 
} 
 

 
.box2 { 
 
    background: yellow; 
 
    width:25%; 
 
}
<ol> 
 
<li> 
 
<div class="boxes"> 
 
    <div class="box box1"> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis condimentum massa. Quisque purus nisl, finibus id placerat id, ultricies non magna. Sed justo dui, tristique et metus at, fringilla viverra ipsum. Duis malesuada est eget lectus fermentum, vitae pretium eros tempor. Integer eu mi metus. Cras dui ipsum, iaculis ut libero dictum, dapibus consequat orci. Sed semper vitae lorem eu sollicitudin. Curabitur dapibus fringilla facilisis. Nullam facilisis ante in velit maximus gravida. 
 
</div> 
 
    <div class="box box2"> 
 
    <input type="radio">Yes 
 
    <input type="radio">No 
 
    </div> 
 
</div> 
 
</li> 
 
<li> 
 
<div class="boxes"> 
 
    <div class="box box1">Box 1</div> 
 
    <div class="box box2">Box 2</div> 
 
</div> 
 
</li> 
 
</ol>

+0

これはChromeでうまくいきますが、残念ながらIEではうまく機能しません。リスト項目番号は、左上隅の代わりに左下隅に表示されます。 – Fmacs

+0

私は自分の答えを更新しました。それもIEで動作します。あなたはそれを確認することができます – chirag

+0

私は今IEで動作していることを確認することができます。私はまだ@Mersソリューションで動作していますが、問題が発生した場合はこのソリューションを試してみます。 – Fmacs

0

使用display: inline-flex;の代わりdisplay: table;

あなたはボックスの下の空間を維持したい場合は、margin-bottom: 20px;を追加することができます。

.boxes { 
 
    display:inline-flex; 
 
    width: 100%; 
 
    height: 100%; 
 
    margin-bottom: 20px; 
 
} 
 

 
.box { 
 
    display: table-cell; 
 
} 
 

 
.box1 { 
 
    background: orange; 
 
    width:75%; 
 
} 
 

 
.box2 { 
 
    background: yellow; 
 
    width: 25%; 
 
} 
 

 
li { 
 
    clear: both; 
 
}
<ol> 
 
<li> 
 
<div class="boxes"> 
 
    <div class="box box1">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi quis condimentum massa. Quisque purus nisl, finibus id placerat id, ultricies non magna. Sed justo dui, tristique et metus at, fringilla viverra ipsum. Duis malesuada est eget lectus fermentum, vitae pretium eros tempor. Integer eu mi metus. Cras dui ipsum, iaculis ut libero dictum, dapibus consequat orci. Sed semper vitae lorem eu sollicitudin. Curabitur dapibus fringilla facilisis. Nullam facilisis ante in velit maximus gravida. 
 
</div> 
 
    <div class="box box2"> 
 
    <input type="radio">Yes 
 
    <input type="radio">No 
 
    </div> 
 
</div> 
 
</li> 
 
<li> 
 
<div class="boxes"> 
 
    <div class="box box1">Box 1</div> 
 
    <div class="box box2">Box 2</div> 
 
</div> 
 
</li> 
 
</ol>

+0

これはChromeでうまくいきますが、残念ながらIEではうまくいきません。リスト項目番号は、左上隅の代わりに左下隅に表示されます。 – Fmacs

関連する問題