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

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

ただいまの
回答率

90.45%

  • JavaScript

    21041questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    8377questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • CSS

    7820questions

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

  • HTML5

    5305questions

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

  • float(CSS)

    25questions

    これはCSSのfloatプロパティのタグです。指定された要素を左または右に寄せて配置する際に使用します。

なぜ、floatと指定しないと上手くいかないのか

解決済

回答 1

投稿 編集

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

aaaaaaaa

score 471

下記のソースは、連想配列center_elで指定した各々の要素(#gnavi)の子要素(#gnavi li > a span')を、親要素(#gnavi)の中央部分に配置するものです。

var center_el = {
        '#gnavi': '#gnavi li > a span',//グローバルメニュー部分0
        '.jakku p:nth-child(3)': '.jakku p:nth-child(3) span',//スライダーの惹句部分1
        '.gnavi_contents a': '#gnavi .gnavi_contents a span:not(#gnavi_column_wrap .gnavi_column a:first-of-type span)',//グローバルメニュー内の各リンク部分2
        '#katugyoArea p': '#katugyoArea p span'//四角形のリンク部分3
    }
    $.each(center_el, function(index,value) {
        //■index=囲っている要素:value=中央に配置する要素
        var wrap_h = $(index).height();
        var center_h = $(value).height();
        var fit_h = Math.floor((wrap_h - center_h) /2) +'px';

        //■中央に配置したい要素のpadding-topを設定している。
       $(value).css('padding-top', fit_h);

    });


ここで質問なのですが、この連想配列center_el内で指定した要素のうち、上から1番目のスライダーの惹句部分と3番目の四角形のリンク部分だけがfloat:right或いは、leftと指定しないと要素が中央に寄せられないのです。
中央から少しずれた状態になってしまうのです。しかし0番目と2番目は、floatを指定しなくても問題なく中央に配置されます。

スライダーの惹句部分css

.jakku p:nth-child(3) {
    font-size: 30px;
    font-weight: bold;
    width: 420px;
    border: solid 5px #fff;
    padding: 15px;
    background: url(../image/yazirusi.png) no-repeat right;
}
.jakku p:nth-child(3):hover {
    border: solid 5px #063;
    background: #063 url(../image/yazirusi.png) no-repeat right;
}
.jakku p:nth-child(3) span {
    font-size: 14px;
    float: right;/*何故かfloat:right或いはleftを指定するとcenter_fit()が上手く動作する。*/
    padding-right: 10px;
}

四角形のリンク部分

#katugyoArea p {
    height: 30px;
    width: 420px;
    font-weight: bold;
    border: solid 5px #fff;
    padding: 15px;
    margin: 0 auto;
    background: url(../image/yazirusi.png) no-repeat right;
}
#katugyoaArea p:hover {
    border: solid 5px #063;
    background: #063 url(../image/yazirusi.png) no-repeat right;
}
#katugyoArea p span {
    font-size: 14px;
    text-align: center;
    float: left;/*何故かfloat:rightとleftを指定するとcenter_fit()が上手く動作する。*/
    padding-right: 10px;
    color: #fff;
}

なぜ、1番目と3番目だけfloatが必要になってしまうのでしょうか。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • aKusano

    2016/02/01 18:33

    最終的に出力されるHTMLコードと、そこに関連するCSS、あと出来たら理想の完成図と現在の状態の図もあると理解がしやすいと思います。
    ちなみにJavascriptで何やら難しいことをしているようですが、おそらくやりたいことはほぼHTMLとCSSだけでも出来ることだと思われます。

    キャンセル

回答 1

check解決した方法

0

spanのdisplayをblockにすることで解決しました。
インライン要素であることを忘れておりました。ブロックにすることで思惑通りの意匠となったのです。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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

  • JavaScript

    21041questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    8377questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • CSS

    7820questions

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

  • HTML5

    5305questions

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

  • float(CSS)

    25questions

    これはCSSのfloatプロパティのタグです。指定された要素を左または右に寄せて配置する際に使用します。