質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.70%

レスポンシブサイトでウインドウサイズを小さくすると必要のない隙間ができる

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,029
退会済みユーザー

退会済みユーザー

下記はレスポンシブサイト用のソースです。
スライドショー部分なのですが、ウインドウサイズを変更すると画像はウインドウサイズによって
サイズが変わってくれるのですが、
下の

<section> 

  <!-- company_dscription -->
  <div id="company_discription">
    <p>”人間が全ての事の主人であり、全てを決める”</p>
  </div>
  <!-- company_dscription --> 

</section>

とスライドショーの要素の間に隙間が出来てしまいます。
多分スライドショーの親要素でheight:600px;と指定しているので隙間があいてしまうのだと思いますが、
どうCSSをいじっても隙間がなくなりません。
どうしたらいいでしょうか?

画像のサイズは全て同じです。

<HTML>

<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/main_style.css">
<link rel="stylesheet" type="text/css" href="css/index_style.css">
<link rel="stylesheet" type="text/css" href="css/slide_anime.css">
<meta charset="UTF-8">
<title>無題ドキュメント</title>
</head>

<body>
<header>
  <nav class="clearfix"> 

    <!-- logo -->
    <div class="logo">
      <h1><a href="index.html"><span>株式会社DPRK</span></a></h1>
    </div>
    <!-- logo -->

    <ul>
      <li class="menu01"><a href="#">ホーム<br>
        <span>HOME</span></a></li>
      <li class="menu02"><a href="#">会社概要<br>
        <span>COMOPANY</span></a></li>
      <li class="menu03"><a href="#">事業内容<br>
        <span>WORKS</span></a></li>
      <li class="menu04"><a href="#">ニュース<br>
        <span>NEWS</span></a></li>
      <li class="menu05"><a href="#">採用情報<br>
        <span>RECRUIT</span></a></li>
      <li class="menu06"><a href="#">お問い合わせ<br>
        <span>CONTACT</span></a></li>
    </ul>
  </nav>
</header>
<section class="main_slide">
  <div class="slide"> <img src="img/slideshow/slide1_nkflag.jpg" alt="北朝鮮国旗"> <img src="img/slideshow/slide2_3kim.jpg" alt="金日成・金正日・金正恩"> <img src="img/slideshow/slide3_juche.jpg" alt="チュチェ思想塔"> <img src="img/slideshow/silde4_pyongyang.jpg" alt="平壌"> <img src="img/slideshow/silde5_parade.jpg" alt="北朝鮮軍事パレード"> </div>
</section>
<section> 

  <!-- company_dscription -->
  <div id="company_discription">
    <p>”人間が全ての事の主人であり、全てを決める”</p>
  </div>
  <!-- company_dscription --> 

</section>
<section id="missile_sale" class="clearfix">
  <p class="missile_p1"><a href="#"><img src="img/missile_sale_kyouwakoku.jpg" width="640" height="100" alt="ミサイル販売共和国"></a></p>
  <p class="missile_p2"><a href="#"><img src="img/missile_sale_newclear.jpg" width="640" height="100" alt="白頭山核ミサイル"></a></p>
</section>
</body>
</html>

<CSS>

@charset "UTF-8";
/* CSS Document */

/* --------------------------------------------- */
/* ▼モバイルファースト (全環境に共通のデザイン) */
/* --------------------------------------------- */

/* -------------------------------------------- */
/* ▼PC用デザインとして付け足すデザイン */
/* -------------------------------------------- */

@media all and (min-width: 760px) {

}

@media all and (min-width: 608px) {

* {
    margin:0;
    padding:0;
}

body {
    color:#333;
    margin: 0;
}

img {
 max-width: 100%;
 max-height: 100%;
 width: auto;
 height: auto;
}

.logo {
    float:left;
    width:250px;
    padding-right:20px;
}



a:hover {
    transition: 0.5s ;
    background: #EEE;
    opacity: 0.4;
    filter: alpha(opacity=40);
    -ms-filter: "alpha(opacity=40)";

}

h1 {
      width:250px;
      height:71px;
      background-image:url("../img/logo.png");
      background-repeat:no-repeat;
}

h1 span {
    display:none;
}

h1 a {
    display:block;
      width:250px;
      height:71px;
}

nav {
    background-color:#fff;
    padding-top:10px;
    display: flex;
    justify-content: center;
    height: 83px; /* 高さ */
      width: 100%; /* 長さ */
      position: fixed; /* ヘッダーを固定(これが重要) */
      top: 0; /* 固定する位置 */
    left: 0; /* 固定する位置 */
      right: 0;  /* 固定する位置 */
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.2);
    z-index:1
}

nav li {
    list-style:none;
    float:left;
    text-align:center;
    overflow: hidden;

}

nav .menu01, .menu02, .menu03, .menu04, .menu05, .menu06 {
    width:125px;
    background-color:#FFF;
    font-weight:bold;
}

nav .menu02, .menu03, .menu04, .menu05, .menu06 {
    border-left: solid 1px #CCC;
    -moz-box-sizing: border-box;
   -webkit-box-sizing: border-box;
   -o-box-sizing: border-box;
   -ms-box-sizing: border-box;
   box-sizing: border-box;

}

nav a {
    width:100%;
    display:block;
}

nav span {

    color:#CCC;
    font-weight:100;
    line-height:3em;
}

nav a:link { color: #333; }
nav a:visited { color: #333; }
nav a:hover { color: #333; }
nav a:active { color: #333; }

a {
    text-decoration:none;
}

.clearfix {
 *zoom: 1;
}
.clearfix:after {
    content: '';
    display: table;
    clear: both;
}

/*スライダー*/


body > .main_slide {
    background-color:#eb3328;
    height:600px;
}

/*=== 画像の表示エリア ================================= */
.main_slide {
    position : relative;
    overflow : hidden;
    /* 画像のサイズに合わせて変更ください */
    width : 100%;
    height: 100%;
    margin : auto;      /* 中央寄せ */
    margin-top:93px;
}

/*=== 画像の設定 ======================================= */

.slide img {
    display: block;
    position : absolute;
    /* 画像のサイズを表示エリアに合せる */
    width : 1280px;
    height : auto;
    left:100%;
    animation : slideAnime 15s ease infinite;
    margin-left: 50%;
    transform: translateX(-50%);
}

#company_discription {
    background-image:url(../img/sc2_nk_flag_bg.jpg) ,url(../img/sc2_nk_flag_bg_1px.jpg);
    background-repeat:
    no-repeat, /* 最前面の背景レイヤーに対応 */
    repeat; /* 再背面の背景レイヤーに対応 */
      height: 150px;
      display: flex;
    justify-content: center; /*左右中央揃え*/
    align-items: center;     /*上下中央揃え*/

}

#company_discription p {
    text-align:center;
    color:#faee00;
    font-size:36px;
    font-weight:bold;
}

#missile_sale {
    margin-top:20px;
    display: flex;
    justify-content: center; /*左右中央揃え*/
}

#missile_sale p {
    float:left;
}

#missile_sale img {
    width:100%;
    height:100%;
}

#missile_sale .missile_p1 {
    margin-right:10px;
}

#missile_sale .missile_p2 {
    margin-left:10px;
}

/*=== スライドのアニメーションを段差で開始する ========= */
.slide img:nth-of-type(1) {
    animation-delay: 0s
}
.slide img:nth-of-type(2) {
    animation-delay: 3s
}
.slide img:nth-of-type(3) {
    animation-delay: 6s
}
.slide img:nth-of-type(4) {
    animation-delay: 9s
}
.slide img:nth-of-type(5) {
    animation-delay: 12s
}

 /*=== スライドのアニメーション ========================= */
@keyframes slideAnime {
 0% {
left: 100%
}
 1% {
left: 0
}
 19% {
left: 0
}
 20% {
left: -100%
}
 100% {
left: -100%
}
}

}

これが現在のソースです。
イメージ説明
下の赤い部分が隙間です。

「試したこと」

body > .main_slide {
    background-color:#eb3328;
}

/*=== 画像の表示エリア ================================= */
.main_slide {
    position : relative;
    overflow : hidden;
    /* 画像のサイズに合わせて変更ください */
    width : 100%;
    height: 100%;
    margin : auto;      /* 中央寄せ */
    margin-top:93px;
}


このように変更するとスライドショーの画像が全く表示されません。
height:auto;にしても同じでした。
イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kszk311

    2018/03/14 18:30

    念のため確認ですが、画像のサイズは、全て幅1280px/高さ600pxですか?

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2018/03/14 18:32

    全て同じサイズです。

    キャンセル

回答 3

checkベストアンサー

0

全体のimgにmax-width: 100%;が指定されているため、
のため、幅をせばめると、親のサイズが最大になってしまいます。
(ここでは、親=ウィンドウの幅と同じですね)

.slide imgに下記を追加すると、直るような気がします。

    .slide img {
        max-width: 1280px;
    }

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/14 18:50

    ありがとうございます。直りました。max-widthについて勉強致します。他の皆さまもご回答ありがとうございました。

    キャンセル

0

画像が絶対配置のため高さが維持できません。
.slideに高さを持たせてみては?

.slide {
  /* 幅の57% */
  height: 57vw;
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/14 18:15

    body > .main_slide {background-color:#eb3328; height:600px;}これのheightを無くしheight: 57vw;を追加してみましたが1枚目は綺麗に表示されるのですが、2枚めから余計に隙間があいてしまいました。

    キャンセル

  • 2018/03/14 18:20

    画像のサイズが違うのでしょうか?

    キャンセル

  • 2018/03/14 18:31

    画像サイズは同じです。

    キャンセル

  • 2018/03/14 18:41

    vwの数値を57vwより小さくすると隙間が消えました。ただ画像が潰れてしまうのでいい数値を探しています。

    キャンセル

0

.slide img {
    position : absolute;
}

なので、body > .main_slide の中身が高さを持っていません。
ですから、body > .main_slide のheightを省くと高さがゼロになり表示されません。

.slide img {
    position : absolute;
}

を消すとどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/14 18:12

    ありがとうございます。それを消してみましたが、そうするとスライドショーがおかしくなってしまい、画像が縦に全部表示されてしまいました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.70%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる