javascript - 在滚动列表的最后一项和父项的边框之间添加空间

标签 javascript css reactjs

我试图在我的列表中的最后一项和父容器的边框之间留出间距。我为子元素设置的边距似乎在第一个元素和父容器的开头之间增加了空间,但对最后一个元素没有同样的影响,我不确定为什么。如果有人可以向我解释为什么会发生这种情况以及如何解决它,我将不胜感激。

import React from "react";
import { makeStyles } from "@material-ui/core/styles";

const useStyles = makeStyles((theme) => ({
  root: {
    display: "flex",
    flexDirection: "row",
    scrollSnapType: "x mandatory",
    width: "500px",
    height: "100px",
    border: "solid black 1px",
    overflow: "auto",
    justifyContent: "flex-start",
    alignItems: "center",
    backgroundColor: "blue"
  },
  item: {
    scrollSnapAlign: "center",
    height: "50px",
    minWidth: "50px",
    backgroundColor: "red",
    margin: "10%"
  }
}));

export default function SimpleCollapse() {
  const classes = useStyles();
  return (
    <div className={classes.root}>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
      <div className={classes.item}></div>
    </div>
  );
}

img1 img2

最佳答案

Margins are for moving an element in from the wrapper, not expanding the wrapper outwards.

有关完整说明,请查看 here .


解决方法是在容器中添加一个伪::after元素。这个想法的灵感来自 this post但实现方式不同。

const useStyles = makeStyles((theme) => ({
  root: {
    ...
    "&::after": {
      content: `""`,
      minWidth: "0.1px", // 0.01px will not work ¯\_(ツ)_/¯
      height: "100%"
    }
  },
  ...
}));

Edit late-glade-tnj1d

关于javascript - 在滚动列表的最后一项和父项的边框之间添加空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63590097/

相关文章:

reactjs - 如何将查询参数传递到 lambda 函数内的 url(netlify 环境)

javascript - "even last"数组 JavaScript 练习

javascript - 单击以展开 <div>,但将鼠标悬停在远处以返回正常大小

Javascript 按钮 snap.js

css - cakephp 和表单 css

javascript - Next.js 持久组件 - 即使在更改页面后也能播放的 Youtube 嵌入

javascript - 在 Node.JS 中一次读取一个大文件 N 行

javascript - Telerik 单选按钮所需的字段验证器

html - 需要帮助以内联 Logo 居中导航栏

javascript - 简单的表单提交文件