Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何扭曲聚焦元素的轮廓?_Html_Css_Css Transforms - Fatal编程技术网

Html 如何扭曲聚焦元素的轮廓?

Html 如何扭曲聚焦元素的轮廓?,html,css,css-transforms,Html,Css,Css Transforms,我有一个定制的按钮/链接元素,它将所述元素转换为如下所示: 我遇到的问题是,当使用键盘聚焦按钮时,轮廓并没有沿着元素的边界变换。我也尝试过使用长方体阴影,得到了相同的结果。是否有一种正确的方法来转换大纲,就像我对元素本身所做的那样 .button { font-family: $brand-font; font-weight: 900; transition: color $transition-duration ease-out; -webkit-appearance: no

我有一个定制的按钮/链接元素,它将所述元素转换为如下所示:

我遇到的问题是,当使用键盘聚焦按钮时,轮廓并没有沿着元素的边界变换。我也尝试过使用长方体阴影,得到了相同的结果。是否有一种正确的方法来转换大纲,就像我对元素本身所做的那样

.button {
  font-family: $brand-font;
  font-weight: 900;
  transition: color $transition-duration ease-out;
  -webkit-appearance: none;
  -moz-appearance: none;
  display: inline-block;
  text-align: center;
  max-width: 320px;
  min-width: 200px;
  height: 40px;
  line-height: 40px;
  position: relative;
  border: none !important;
  font-size: 1.4rem;
  z-index: 0;
  padding: 0 1.8rem;
  background-color: transparent;
  color: $primary-blue;
  cursor: pointer;

  &:visited {
    border: none !important;
  }

  &.skewOnHover {
    color: $secondary-blue;
  }

  & > svg {
    vertical-align: middle;
  }

  &:focus {
    outline: 2px solid $primary-blue;
    // box-shadow: 0 0 0 2px $primary-blue;
  }

  &::before {
    content: ""; display: block;
    display: block;
    width: 100%; height: 100%;
    top: -2px; left: -2px;
    transition-property: border, background-color, transform;
    transition-duration: $transition-duration;
    transition-timing-function: ease-out;
    position: absolute;
    z-index: -1;

    // regular (cyan background, blue text)
    background-color: $secondary-blue;
    border: 2px solid $secondary-blue;
    transform: skew(-22.5deg);
  }

  &.skewOnHover {
    &::before {
      background-color: transparent;
      transform: skew(22.5deg);
    }
  }

将轮廓应用于倾斜图元:

&:focus:before {
 outline: 2px solid red;
}
并重置按钮的轮廓:

.button:focus {
  outline: none;
}
。按钮{
字号:900;
过渡:颜色0.3s缓变;
-webkit外观:无;
-moz外观:无;
显示:内联块;
文本对齐:居中;
最大宽度:320px;
最小宽度:200px;
高度:40px;
线高:40px;
位置:相对位置;
边界:没有!重要;
字体大小:1.4rem;
z指数:0;
填充:0.1.8rem;
背景色:透明;
颜色:蓝色;
光标:指针;
}
.按钮:已访问{
边界:没有!重要;
}
.button.skewOnHover{
颜色:淡蓝色;
}
.button>svg{
垂直对齐:中间对齐;
}
.按钮:焦点{
大纲:无;
}
.按钮:焦点:前{
外形:2倍纯红;
}
.按钮::之前{
内容:“;
显示:块;
显示:块;
宽度:100%;
身高:100%;
顶部:-2px;
左:-2px;
过渡属性:边框、背景色、变换;
过渡时间:0.3s;
过渡定时功能:缓解;
位置:绝对位置;
z指数:-1;
背景色:淡蓝色;
边框:2个实心道奇蓝;
变换:倾斜(-22.5度);
}
.button.skewOnHover::before{
背景色:透明;
变换:倾斜(22.5度);
}

按钮
确实有效。我必须承认,由于缺乏以下知识,我感到有点尴尬:before实际上可以用于聚焦。多谢各位