1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【CSS】画面幅で要素を出し分ける方法。メディアクエリとdisplayの活用

Posted at

画面幅によって要素を出し分ける方法はcssだけで簡単に実現できる。

displayプロパティとメディアクエリを使う。表示したくない時はdispaly:noneとし、表示したい画面幅の時にdispaly:blockとすればOK。

例1:画面幅375px以下で改行する

376px以上の時は1行で表示して、375px以下になった時に、<br>タグで改行する処理。

br.gif

<br class="newline">を2つ挿入し、デフォルトはdisplay: none;とする。メディアクエリを使って375px以下の時はdisplay: block;にする。

.css
.newline{
  display: none;
}

@media screen and (max-width:375px) {
  .newline{
    display: block;
  }
}
.html
<p>
  画面幅によって出し分ける方法。
  <br class="newline">
  <br class="newline">
  375px以下で改行する
</p>

sassで記述する

sassのmixinを使うと、簡単に呼び出せるようになりメンテ性が上がる。

.scss
//mixinの定義
@mixin mq-down ( $breakpoint: 375px ){
  @media screen and (max-width: $breakpoint){
    @content
  }
}

//cssの設定
.newline{
    display: none;
    @include mq-down{
      display: block;
    }
}

▼mixinの定義

@mixin ミクシン名 ( 初期値 ){処理}

@include ミクシン名

mixinの呼び出し。引数を指定しない場合は初期値が入る。

例えば、@include mq-down(600px)とすれば、ブレイクポイントが600pxになる。

@content

mixinの中で@contentを使うと、呼び出した時に{ }の中に記述した内容が@contentの中に入る。

上記例では、display: blockがメディアクエリの{ }の中に記述される。


## 例2: 画面幅に合わせてdivタグを出し分ける 3つのdivタグを用意して、600px, 375px毎にdivを1つづつ減らしていく。

div.gif

.css
.div1 {
  background: blue;
}

.div2 {
  background: red;
  display: none;
}
@media screen and (min-width: 375px) {
  .div2 {
    display: block;
  }
}

.div3 {
  background: green;
  display: none;
}
@media screen and (min-width: 600px) {
  .div3 {
    display: block;
  }
}
.html
<div class="div1">div1</div>
<div class="div2">div2</div>
<div class="div3">div3</div>

### Sassで記述する sassのmixinを使うとシンプルになる。
.scss
//mixinの定義
@mixin mq-up ( $breakpoint: 375px ){
  @media screen and (min-width: $breakpoint){
    @content
  }
}

//cssの設定
.div1{
  background: blue;
}
.div2{
  background: red;
  display: none;
  @include mq-up{
    display: block;
  }
}
.div3{
  background: green;
  display: none;
  @include mq-up(600px){
    display: block;
  }
}

scss便利。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?