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

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

ただいまの
回答率

90.35%

  • HTML

    12591questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • CSS

    8369questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

  • HTML5

    5620questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • CSS3

    2865questions

    CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

.box-innerのwidth:calc();で.box-innerを囲っている#box-wrapのwidthを指定したい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 879

hirohisasato

score 13

ブレイクポイントで#containerのwidthが100%になったとき、
横並びになっている3つの.box-innerが可変で同じwidthになり、
余白は固定で25pxずつ空けるレイアウトを作りたいです。
現状では右側の余白が大きくなってしまっています。

私の考えでは、.box-innerのwidth: calc((100% - 100px) / 3 );のところで、
この100%の指定が.box-innerのwidthに対して計算されているのが原因と思われます。
ここの100%の指定を#box-wrapのwidthに対して計算されるようにしたいのですが、どうすればいいのでしょうか?
原因が全く別のところにあったらすいません。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>test</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/style.css">
</head>
<body>

<div id="container">

<div id="box">
    <h2>テキストテキスト</h2>

<div id="box-wrap">

<div class="box-inner">

    <div class="box-innner-photo box-i-p-01">
    </div><!-- /.box-innner-photo box-i-p-01-->

    <div class="box-innner-text">
    <h4>テキストテキストテキスト</h4>
    <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p>
    </div><!-- /.box-innner-text -->
</div><!-- /.box-inner -->

<div class="box-inner">

    <div class="box-innner-photo box-i-p-02">
    </div><!-- /.box-innner-photo box-i-p-02 -->

    <div class="box-innner-text">
        <h4>テキストテキストテキスト</h4>
        <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p>
    </div><!-- /.box-innner-text -->

</div><!-- /.box-inner -->

<div class="box-inner">

    <div class="box-innner-photo box-i-p-03">
    </div><!-- /.box-innner-photo box-i-p-03 -->

    <div class="box-innner-text">
        <h4>テキストテキストテキスト</h4>
        <p>テキストテキストテキストテキストテキストテキスト</p>
    </div><!-- /.box-innner-text -->

</div><!-- /.box-inner -->

</div><!-- /#box-wrap -->

</div><!-- /#box -->

</div><!-- /#container -->

</body>
</html>
@charset "UTF-8";

/* reset */
html,body, h1, h2, h3, h4, p, ul, li, dl, dt, dd, table{
margin: 0;
padding:0;
line-height: 1.0;
font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

a { text-decoration: none; }
ul, li{ list-style: none; }
img{ vertical-align: bottom; }

/* #container */
#container{
width: 1000px;
margin: 0 auto;
padding-top: 60px;
background-color: lavenderblush;
}

/* #box h2 */
#box h2{
height: 16px;
padding-bottom: 30px;
text-align: center;
}

/* #box h4 */
#box h4{
height: 40px;
font-size: 14px;
font-weight: bold;
line-height: 40px;
letter-spacing: 1px;
color: #000;
text-align: left;
}

/* .box-inner p */
.box-inner p{
height: 18px;
font-size: 12px;
font-weight: 500;
line-height: 18px;
letter-spacing: 1px;
color: #000;
text-align: left;
word-break: break-all;
}

/* #box */

#box-wrap {
overflow: hidden;
padding: 12.5px;
box-sizing: border-box;
}

.box-inner{
float: left;
width: calc((1000px - 100px) / 3 );
height: 300px;
margin: 12.5px;
}

.box-innner-photo {
height: 185px;
}

.box-i-p-01{
background-color: lime;
}

.box-i-p-02{
background-color: aqua;
}

.box-i-p-03{
background-color: fuchsia;
}

.box-innner-text {
height: 115px;
}

@media screen and (max-width:1020px){

/* #container */
#container{
width: 100%;
}

/* #box */

.box-inner{
width: calc((100% - 100px ) / 3 );
}

.box-innner-text {
height: 115px;
}

@media screen and (max-width:820px){

/* #box h4 */
#box h4{
height: 40px;
font-size: 14px;
line-height: 20px;
}

}

@media screen and (max-width:620px){

/* #box h4 */
#box h4{
height: 36px;
font-size: 12px;
line-height: 16px;
}

/* .box-inner p */
.box-inner p{
height: 14px;
font-size: 10px;
line-height: 14px;
}

#box-wrap {
padding: 5px;
}

.box-inner{
width: calc((100% - 40px) / 3 );
height: 285px;
margin: 5px;
}

.box-innner-text {
height: 100px;
}

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

+2

vw で指定すればできます。

width: calc((100vw - 40px) / 3);

【CSS には vw, vh, vmin, vmax という単位がある | Developers.IO】
http://dev.classmethod.jp/ria/html5/css-length-viewport/

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/02/14 11:50

    あ、解決してた。

    キャンセル

  • 2017/02/14 13:01

    vw使ったほうが可読性高いしスマートですよね、勉強させていただきました。

    キャンセル

  • 2017/02/14 22:21

    回答ありがとうございます。勉強になりました。

    キャンセル

checkベストアンサー

+1

こういうことですか?
https://jsfiddle.net/q69w5cuL/1/
CSSがかなり変わってしまっているので参考になるかどうか怪しいですが・・・。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/02/14 11:44

    回答ありがとうございます。解決できました。
    calc内の計算が間違っていました。

    .box-inner{
    float: left;
    width: calc((100% - 75px) / 3 );
    height: 300px;
    margin: 12.5px;
    }

    キャンセル

  • 2017/02/14 12:59

    kei344さんの回答がとても参考になると思います。私のはspace-around使ってるので厳密な計算には向かいないです(子要素がルール無視して縮小してしまうので)。。。

    キャンセル

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

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

同じタグがついた質問を見る

  • HTML

    12591questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • CSS

    8369questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

  • HTML5

    5620questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • CSS3

    2865questions

    CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。