この<div class="columns is-vcentered">
それを囲んでいる赤いセクションに?
このコードを改善するために、ここでいくつかのクラスを削除または追加する必要がありますか?提案してください。ありがとう!
私はCSSフレームワークを初めて使用します。Bootstrapを試したことはなく、代わりにBulmaを選択しました。
<section id="eyes" class="section">
<div class="container">
<div class="columns is-vcentered">
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
<div class="column">
<img class="image" src="img/roll.jpg" alt="">
</div>
</div>
</div>
</section>
CSSでは、要素の色付けは別として、これを行っただけです。
section {
height: 70vh;
}
.columns
がデフォルトでdisplay:flex;
を持たないのは少しおかしいと思います(おそらく持っているべきでしょうか?)。とにかく、たとえばフレックスを追加するものを使用する場合:
class="columns is-desktop is-vcentered"
display:flex
からis-desktop
を取得すると、突然is-vcentered
が意図したとおりに機能します。
また、is-vcentered
は、垂直に中央揃えされるのはcolumns
であると示唆しているため、セマンティクスはオフになっていると思います。しかし、それが実際に行うこと(ソースから):
.columns.is-vcentered {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
columns
の子をcolumns
内の垂直方向の中央に配置することです。そのため、columns
要素の高さも設定する必要があります。
is-vcentered
にはhas-vcentered-content
のような名前を付けるべきだと思いますが、おそらく明らかなものが欠けています。
is-vcentered
のcolumns
-要素に高さとフレックスを追加して、何かをします。申し訳ありませんが、これはより多くの問題の外挿であり、解決策ではありません。
実際の解決策は、おそらく既存の hero-class を使用することだと思います。 (ちなみに、Peter Legerの答えのように、パディングを使用して手動で中央揃えします!)。
セクションの高さを使用しているため、列は垂直方向に中央に配置されません。 使用パディング to 増加 the height.
クラス.section
(Bulma内)を削除します
.section {
background-color: white;
padding: 3rem 1.5rem;
}
独自のパディングを使用します。
例
.red-bg {
background: red;
}
.orange-bg {
background: orange;
}
section {
padding: 100px 15px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.4.3/css/bulma.css" rel="stylesheet" />
<section class="red-bg">
<div class="container">
<div class="columns is-vcentered">
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
<div class="column">
<img class="image" src="http://placehold.it/400x300" alt="">
</div>
</div>
</div>
</section>
<section class="orange-bg">
<div class="container">
<div class="columns is-vcentered">
<div class="column">
<img class="image" src="http://placehold.it/400x300" alt="">
</div>
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
</div>
</div>
</section>
<section class="red-bg">
<div class="container">
<div class="columns is-vcentered">
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
<div class="column">
<img class="image" src="http://placehold.it/400x300" alt="">
</div>
</div>
</div>
</section>
[〜#〜] postscript [〜#〜]
.columns is-vcentered
を2回使用できます。その場合、セクションの高さを設定できます。
section {
height: 70vh;
padding: 15px;
}
.red-bg {
background: red;
}
.orange-bg {
background: orange;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.4.3/css/bulma.css" rel="stylesheet" />
<section class="columns is-vcentered is-centered red-bg">
<div class="container">
<div class="columns is-vcentered is-centered">
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
<div class="column">
<img class="image" src="http://placehold.it/400x300" alt="">
</div>
</div>
</div>
</section>
<section class="columns is-vcentered orange-bg">
<div class="container">
<div class="columns is-vcentered">
<div class="column">
<img class="image" src="http://placehold.it/400x300" alt="">
</div>
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
</div>
</div>
</section>
<section class="columns is-vcentered red-bg">
<div class="container">
<div class="columns is-vcentered">
<div class="column">
<h1>Eyes on what matters</h1>
<p>Backtick is made to look minimal, so you can focus on your code, always. From UI to linter errors, everything is kept non-obtrusive.</p>
</div>
<div class="column">
<img class="image" src="http://placehold.it/400x300" alt="">
</div>
</div>
</div>
</section>
更新:ここでは、垂直に(= /// =)垂直に.content
クラスではなく.column
クラス内のアイテムを整列する方法をグーグルで調べました。他の人も同じ理由でこの場所につまずくかもしれません。
.content
クラス内の要素を垂直方向に整列させようとしている場合は、次のようにします。
.content.is-vcentered {
display: flex;
flex-wrap: wrap;
align-content: center; /* used this for multiple child */
align-items: center; /* if an only child */
}
注:これは、高さが固定されているdiv
の場合に非常に便利です。
これが動作したhtml構造の例です
<div class="content is-vcentered has-text-centered">
<h1>Content</h1>
<p>that might be from</p>
<p>wysiwyg containing</p>
<p>multiple lines</p>
</div>
<div class="content is-vcentered">
<p>Some text line</p>
</div>
以下にサンプルを示します jsfiddle