对齐宽度 0 按钮,其宽度取决于伪元素宽度到中心 更新

如何解决对齐宽度 0 按钮,其宽度取决于伪元素宽度到中心 更新

对齐中心应该是一项简单的任务。但是,我制作了一个奇怪的按钮,无法将其与父项的中心对齐。

#wrapper{
    position: fixed;
    top: 25vh;
    left: 25vw;
    height: 50vh;
    width: 50vw;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;
    border: 1px solid;
}

/* square button */
.square-button {
  font-size: 20px;
  font-family: Arial;
  text-decoration: none;
  text-transform: uppercase;
  transform-style: preserve-3d;
  position: relative;
  transition: .5s;
}

.square-button::before {
  content: attr(title);
  position: absolute;
  top: 0;
  left: 0;
  padding: 15px 40px;
  background: #fff;
  color: #000;
  border: 3px solid #000;
  transition: .5s;
  transform-origin: right;
  transform: translateX(-100%) rotateY(90deg);
}

.square-button::after {
  content: attr(title);
  position: absolute;
  top: 0;
  left: 0;
  padding: 15px 40px;
  background: #000;
  color: #fff;
  border: 3px solid #000;
  transition: .5s;
  transform-origin: left;
  transform: translateX(0) rotateY(0deg);
}

.square-button:hover::before {
  transform: translateX(0) rotateY(0deg);
}

.square-button:hover::after {
  transform: translateX(100%) rotateY(90deg);
}

/* squre button customize */
#setting-apply::before {
  border: 3px solid #f7786b;
  color: #f7786b;
}

#setting-apply::after {
  border: 3px solid #f7786b;
  background: #f7786b;
}

#setting-cancel::before {
  border: 3px solid #80ced6;
  color: #80ced6;
}

#setting-cancel::after {
  border: 3px solid #80ced6;
  background: #80ced6;
}
<div id="wrapper">
    <a id="setting-apply" class="square-button" href="#" title="apply"></a>     
    <a id="setting-cancel" class="square-button" href="#" title="cancel"></a>       
</div>

我尝试将 display: flex; flex-direction: column; justify-content: space-around; 应用于父元素,但没有奏效。

通过使用 css 或 js,有没有办法让这个按钮居中对齐?

感谢任何建议。


更新

在 js 中,有没有办法选择伪元素,以便我可以使用 getBoundingClientRect 动态设置宽度? (以下代码不正确)

const button = document.querySelector('.square-button');
const button_before = button.before;
console.log(button_before.getBoundingClientRect());

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?