2016-07-29 13 views
0

私は単に、犬の品種に関する情報を持つボックスごとにグリッドを表示しようとしています。私の問題はこれです:スタイルをインラインで宣言した場合と、同じスタイルをクラスで宣言した場合の動作の違いがあるようです。なぜ私は知っている限り、何があってはならないときに違いがあるのか​​混乱しています。スタイルをインラインで宣言するときの振る舞いを変更する

コードは正しく動作します。http://imgur.com/a/z2b5c これは、以下のコードで発生します。注意すべきコードは、スタイルで宣言されたdogDisplayクラスと、body内のクラスdogDisplayのdivです。 divには、インラインスタイル= "position:absolute"があります。もつとも

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <link href="bootstrap-3.3.6-dist/css/bootstrap.min.css" rel="stylesheet"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 

<style> 
    .dogDisplay { 
     display: inline-block; 
     width: 300px; 
     height: 300px; 
     margin: 10px; 
     background-color: grey; 
    } 

    .dogName { 
     font-size: 20px; 
     text-align: center; 
    } 

    .img { 
     width: 200px; 
     height: 200px; 
     display: block; 
     margin-left: auto; 
     margin-right: auto; 
    } 

    .content { 
     background-color: red; 
    } 

</style> 

</head> 

<script> 
    //This just loads the dog information from a JSON file 
    var dogInfo = []; 

    function displayInfo(dogBreeds) { 
     $("#container").append("<div class='dogDisplay'></div>"); 
    } 

    window.onload = function() { 

     $.getJSON("breeds.json", function(json) { 
      var i; 
      console.log(typeof(json.dogBreeds)); 
      dogInfo = json.dogBreeds; 
      displayInfo(json.dogBreeds); 
     }) 
    } 

</script> 

<body> 

    <div class="well" style="height:300px"></div> 

    <div id="container" class="container" style="width:100%;background-color:lightblue;border:black 2px solid;"> 
     <div class="dogDisplay" style="position:absolute"> 
      <div class="content"> 
       <p class="dogName">Dog Name</p> 
       <img class="img" src="images/place-holder.jpg" alt="Place-holder"> 
      </div> 
     </div> 
    </div> 
</body> 

。スタイル=「の位置:絶対に」移動するときdogDisplayクラスには、これは新しい動作です:http://imgur.com/a/sv3Oh

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <link href="bootstrap-3.3.6-dist/css/bootstrap.min.css" rel="stylesheet"> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 

<style> 
    .dogDisplay { 
     display: inline-block; 
     width: 300px; 
     height: 300px; 
     margin: 10px; 
     background-color: grey; 
     position: absolute; 
    } 

    .dogName { 
     font-size: 20px; 
     text-align: center; 
    } 

    .img { 
     width: 200px; 
     height: 200px; 
     display: block; 
     margin-left: auto; 
     margin-right: auto; 
    } 

    .content { 
     background-color: red; 
    } 

</style> 

</head> 

<script> 
    var dogInfo = []; 

    function displayInfo(dogBreeds) { 
     $("#container").append("<div class='dogDisplay'></div>"); 
    } 

    window.onload = function() { 

     $.getJSON("breeds.json", function(json) { 
      var i; 
      console.log(typeof(json.dogBreeds)); 
      dogInfo = json.dogBreeds; 

      displayInfo(json.dogBreeds); 
     }) 

    } 

</script> 

<body> 
    <div class="well" style="height:300px"></div> 
    <div id="container" class="container" style="width:100%;background-color:lightblue;border:black 2px solid;"> 
     <div class="dogDisplay"> 
      <div class="content"> 
       <p class="dogName">Dog Name</p> 
       <img class="img" src="images/place-holder.jpg" alt="Place-holder"> 
      </div> 
     </div> 
    </div> 
</body> 

なぜ違いがあるのでしょうか?ありがとうございました!あなたの最初の例で

答えて

1

、この行:開始レイアウトで $("#container").append("<div class='dogDisplay'></div>"); 競合:のみ初期.dogDisplayは絶対配置を持つことになります意味 <div class="dogDisplay" style="position:absolute">

。 2番目の例では、それらのすべてが絶対配置を持ちます。

関連する問題