HH123_3 2023-12-19 09:21 采纳率: 86.8%
浏览 7
已结题

阅读gui-challenges项目遇到的问题3(settings):居中定位和书写方向,这样写不是多此一举吗?

阅读gui-challenges项目遇到的问题3(settings):居中定位和书写方向,这样写不是多此一举吗?

首先在:root上定义了两个变量

:root {
  --isLTR: 1;
 --isRTL: -1;
}
:root:dir(rtl) {
  --isLTR: -1;
 --isRTL: 1;
}

要把这个input[type:checkbox]的为元素:befere定位到它的中间

img

该项目的做法是

  • 先根据当前书写方式了判断是left:50%,还是right: 50%;

img

img

  • 然后在使用transform和css变量来进行移动

img

当书写方向是从左往右的时候,left:50%,此时--isRTL:-1,水平向左移动本身宽度的一半;
当书写方向是从右往左的时候,right:50%,此时--isRTL:1,水平向右移动本身宽度的一半。

我们直接

position:relative;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);

一样可以实现居中,不需要考虑书写方向。项目中为什么要这么写呢?

  • 写回答

2条回答 默认 最新

  • HH123_3 2023-12-22 20:55
    关注

    我知道了。
    作者这里虽然写的是

    left: 50%;
    

    但其实它想写的是

    inset-inline-start: 50%;
    

    使用带有逻辑的声明,此时就需要isLTR变量了。因为在ltr时是left:50%;,而在rtl时是right:50%,相对应translateX(-50%), translateX(50%)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 创建了问题 12月19日

悬赏问题

  • ¥20 有偿,学生成绩信息管理系统
  • ¥15 Arduino电机和openmv连接异常
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件
  • ¥15 根据历史数据,推荐问题类型
  • ¥15 需要仿真图,简单的二阶系统实例
  • ¥15 stm32光控照明仿真
  • ¥15 使用人工智能的方法生成满足一定统计参数要求的随机数序列