2017-12-16 8 views
0

シフト:
enter image description hereが動的に境界線を追加すると、私は次のようになりた、正方形のグリッドを作成してい要素

を私は特定のボックスをクリックしたときに、それが強調表示されますことを、機能を追加しました。だから、動的にクラスを追加すると、選択したボックスにボーダー機能が追加されます。ただし、ボックスは右に移動します(ボックスをクリックすると表示されます)。

enter image description here

なぜそれはそうでしょうか? 以下は私のCSSコードと指示コードです。次のように私のディレクティブの

body { padding-top:30px; } 

.square { 
    float:left; 
    position: relative; 
    width: 20%; 
    padding-bottom : 10%; /* = width for a 1:1 aspect ratio */ 
    margin:1.66%; 
    /*background-color:#1E1E1E;*/ 
    background-color:RED; 
    overflow:hidden; 
} 

.content { 
    position:absolute; 
    height:90%; /* = 100% - 2*5% padding */ 
    width:90%; /* = 100% - 2*5% padding */ 
    padding: 5%; 

} 

.higlight { 
    border-width: small; 
    border-style: dashed; 
    border-color: black; 
    /*border-color: #0001fe;*/ 
}; 

テンプレートは次のとおりです。

template : '<div class="square" ng-class="{higlight: $id === active}" ng-style="{{data.color}}" ng-click="active = $id" ng-transclude> <div class="content"> </div> </div>' 

どのように私は私のボックスが右側にシフトしていないことを、私のCSSやテンプレートを変更することができます。

+1

'ボックスのサイズ変更追加:コンテンツ・ボックスを、あなたの箱に'。 –

答えて

1

あなたは余裕、そのはそれ周りのコンテナに影響を与えるとフロートスタイルを変更を追加しているとき、それはあなたのためfloat:leftのです。 平方クラスfloat:leftの代わりにdisplay:inline-blockを使用すると問題なく動作します。

body { padding-top:30px; } 
 

 
.square { 
 
    display:inline-block; 
 
    position: relative; 
 
    width: 20%; 
 
    padding-bottom : 10%; /* = width for a 1:1 aspect ratio */ 
 
    margin:1.66%; 
 
    /*background-color:#1E1E1E;*/ 
 
    background-color:RED; 
 
    overflow:hidden; 
 
} 
 

 
.content { 
 
    position:absolute; 
 
    height:90%; /* = 100% - 2*5% padding */ 
 
    width:90%; /* = 100% - 2*5% padding */ 
 
    padding: 5%; 
 

 
} 
 

 
.square:hover { 
 
    border-width: 2px; 
 
    border-style: dashed; 
 
    border-color: black; 
 
    margin-top:-2px; 
 
    /*border-color: #0001fe;*/ 
 
};
<div class="content"> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
<div class="square"></div> 
 
</div>

+0

答えてくれてありがとうございますが、小さな問題は残っていますが、ボックスの上にカーソルを置くと、ボックスの行全体が下に移動します。どうすればこれを避けることができますか?前もって感謝します。私は'box-sizing:border-box; 'を使ってみましたが、まだ問題は解決していません。 –

+0

私は最も簡単な解決策とクリーンは負のマージンを追加すると思う、私はそれを更新しました。 –

関連する問題