css - justify-self 和相对位置无法正常工作

标签 css safari css-position css-grid

我有网格框,item2 位于 hi 区域的末尾 b:

.wrapper > div {
    background-color: gray;
    padding: 20px;
}
.wrapper {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-gap: 10px;
    grid-template-rows: 150px 150px;
    grid-template-areas: 
      "a b"
      "c d"
}
.item1 {
    grid-area: a;
}
.item2 {
    grid-area: b;
    justify-self: end;
    position: relative;
    right: -20px;
}
.item3 {
    grid-area: d;
    justify-self: start;
}
<div class="wrapper">
  <div class="item1">Item 1</div>
  <div class="item2">Item 2</div>
  <div class="item3">Item 3</div>
</div>

我需要将 item2 从他的位置向右移动一点,因此我使用relative 位置和right: -20px。它在 Chrome 和 Firefox 中完美运行,但在 Safari 版本 11.1.2 (13605.3.8) 中似乎 justify-self: end 不起作用:我的意思是,item2 是在区域b的左侧。如果没有 right: -20px 元素 item2 位于其区域的右侧。我该如何修复它?

代码笔:https://codepen.io/mraimon/pen/ZwzxWe

最佳答案

您可以使用负边距来代替:

.wrapper > div {
    background-color: gray;
    padding: 20px;
}
.wrapper {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-gap: 10px;
    grid-template-rows: 150px 150px;
    grid-template-areas: 
      "a b"
      "c d"
}
.item1 {
    grid-area: a;
}
.item2 {
    grid-area: b;
    justify-self: end;
    margin-right: -20px;
}
.item3 {
    grid-area: d;
    justify-self: start;
}
<div class="wrapper">
  <div class="item1">Item 1</div>
  <div class="item2">Item 2</div>
  <div class="item3">Item 3</div>
</div>

或者翻译:

.wrapper > div {
    background-color: gray;
    padding: 20px;
}
.wrapper {
    display: grid;
    grid-template-columns: 1fr 2fr;
    grid-gap: 10px;
    grid-template-rows: 150px 150px;
    grid-template-areas: 
      "a b"
      "c d"
}
.item1 {
    grid-area: a;
}
.item2 {
    grid-area: b;
    justify-self: end;
    transform:translateX(20px);
}
.item3 {
    grid-area: d;
    justify-self: start;
}
<div class="wrapper">
  <div class="item1">Item 1</div>
  <div class="item2">Item 2</div>
  <div class="item3">Item 3</div>
</div>

关于css - justify-self 和相对位置无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54290045/

相关文章:

jquery - 动画额外的边距并防止再次从 0px 开始?

asp.net - css 虽然代码改变了,但图像没有改变

JavaScript 警报卡住 iOS 浏览器

ios - 在 AngularJS 应用程序中使用 html input type=search 在 iOS 键盘上显示搜索按钮

html - 使用纯 css 定位 div

javascript - css 和 javascript 像 iOS 照片应用程序一样滚动

html - Bootstrap 4 添加到 map - 添加额外的主题颜色

javascript - 如何使 CSS 属性动画在 Safari 中像在 Google Chrome 中一样工作?

javascript - Google Maps Info Box - 它可以存在于 map 容器之外吗?

css - 没有设置top的时候,为什么位置: absolute div is not overlapped with its siblings