html - 添加边框动态移动元素

标签 html css angularjs

我正在创建一个正方形网格,如下所示:
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 或模板,使我的框不会移到右侧。

最佳答案

这是因为你的 float:left 当你添加边距时,它会影响它周围的容器并改变 float 样式. 您可以在 square 类 上使用 display:inline-block 而不是 float:left ,它会正常工作。

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>

关于html - 添加边框动态移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47847339/

相关文章:

javascript - 想要建立 Facebook 风格的页脚

css - 如何在打开/关闭时隐藏滑动复选框的标签?

html - 如何使用 CSS 将三列居中对齐?

javascript - 模态出现后不可点击 - Safari

javascript - 回调中的 Angular 访问 'this'

javascript - ng-options 不适用于具有 Add New 功能的 select 语句

javascript - 如何使用angularjs检查所选时间小于当前时间或大于当前时间?

php - Woot.com 的电子邮件分享按钮如何递增?

Javascript 什么更快? IF 语句中的多个 OR 以 objective-c ss,或一个 IF 具有多个 css 目标

javascript - 我无法从表单提交中调用我的 PHP 代码,这是为什么?