Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.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_Shape_Css Shapes - Fatal编程技术网

Html 倾斜或扭曲的边界形状

Html 倾斜或扭曲的边界形状,html,css,shape,css-shapes,Html,Css,Shape,Css Shapes,我感兴趣的是,是否有可能使用CSS创建包装的(或者更好地说是扭曲的)边框。我想要达到的效果就在图中 最简单、最简洁的解决方案是使用svg创建边框 #容器{ 位置:相对位置; 宽度:200px; 高度:30px; } #内容{ 文本转换:大写; 位置:绝对位置; 宽度:200px; 高度:30px; 排名:0; 文本对齐:居中; 线高:30px; } 乱数假文 最简单、最简洁的解决方案是使用svg创建边框 #容器{ 位置:相对位置; 宽度:200px; 高度:30px; } #内容{ 文

我感兴趣的是,是否有可能使用CSS创建包装的(或者更好地说是扭曲的)边框。我想要达到的效果就在图中


最简单、最简洁的解决方案是使用
svg
创建边框

#容器{
位置:相对位置;
宽度:200px;
高度:30px;
}
#内容{
文本转换:大写;
位置:绝对位置;
宽度:200px;
高度:30px;
排名:0;
文本对齐:居中;
线高:30px;
}

乱数假文

最简单、最简洁的解决方案是使用
svg
创建边框

#容器{
位置:相对位置;
宽度:200px;
高度:30px;
}
#内容{
文本转换:大写;
位置:绝对位置;
宽度:200px;
高度:30px;
排名:0;
文本对齐:居中;
线高:30px;
}

乱数假文

是的,您可以通过操纵
:before
:after
psuedo元素,在CSS中执行此操作

关键的优势在于,您可以保持HTML的“原样”,并在内容(
HTML
)和样式(
CSS
)之间保持严格的分离

正文{
文本对齐:居中;
}
div{
边框:2倍实心;
显示:内联块;
位置:相对位置;
填充:0 40px;
利润率:20px;
高度:30px;
线高:30px;
溢出:隐藏;
右边界:0;
左边框:0;
}
部门:之后,
部门:以前{
边框:2倍实心;
高度:30px;
宽度:30px;
内容:'';
显示:块;
位置:绝对位置;
顶部:-2px;
变换:旋转(45度);
}
部门:之后{
右:-23px;
}
部门:以前{
左:-23px;
}

Lorem Ipsum
是的,您可以通过操纵
:before
:after
psuedo元素,纯粹在CSS中执行此操作

关键的优势在于,您可以保持HTML的“原样”,并在内容(
HTML
)和样式(
CSS
)之间保持严格的分离

正文{
文本对齐:居中;
}
div{
边框:2倍实心;
显示:内联块;
位置:相对位置;
填充:0 40px;
利润率:20px;
高度:30px;
线高:30px;
溢出:隐藏;
右边界:0;
左边框:0;
}
部门:之后,
部门:以前{
边框:2倍实心;
高度:30px;
宽度:30px;
内容:'';
显示:块;
位置:绝对位置;
顶部:-2px;
变换:旋转(45度);
}
部门:之后{
右:-23px;
}
部门:以前{
左:-23px;
}

Lorem Ipsum
这是一种不同的方法,仅使用纯CSS即可实现此效果(使用答案中解释的方法,但元素反向旋转)

基本上,它包含两个伪元素,它们通过一点透视旋转,并将一个放置在另一个下方以实现形状

此方法的工作原理如下:

  • 两个伪元素
    :before
    :after
    ,大约是主
    按钮的一半大小(包括边框)。每个伪元素的高度在一侧(顶部/底部)为35.5px+3px边框,在另一侧为1.5px(因为两个元素在半距离处重叠)
    
  • 形状的上半部分使用
    :before
    元素实现,而下半部分使用
    :after
    元素实现
  • 使用具有透视效果的
    rotateX
    来实现倾斜效果,并定位以放置两个元素,从而形成预期的形状
  • 注意:示例的悬停效果有一些额外的样式,这会导致形状变成一个拉长的六边形。这不是问题的一部分,只是为了示例(还有一点乐趣:)而添加的。此外,Chrome和Safari的旧版本似乎为
    悬停
    行为提供了不正确的输出,而所有浏览器的最新版本都表现良好

    /*常规按钮样式*/
    .按钮{
    位置:相对位置;
    宽度:300px;
    高度:80px;
    线高:80px;
    文本对齐:居中;
    文本转换:大写;
    颜色:#000;
    利润率:40px自动;
    框大小:边框框;
    }
    .按钮:之前,
    .按钮:之后{
    宽度:300px;
    左:0px;
    身高:35.5px;
    z指数:-1;
    边框:4px实心#000;
    边框顶部宽度:3倍;
    边框底宽:3倍;
    }
    .按钮:之前{
    边框底部:无;
    }
    .按钮:之后{
    边界顶部:无;
    }
    .按钮:之前{
    位置:绝对位置;
    内容:'';
    -webkit变换:透视(15px)旋转(-3deg);
    -moz变换:透视(15px)rotateX(-3deg);
    变换:透视(15px)旋转(-3deg);
    }
    .按钮:之后{
    位置:绝对位置;
    顶部:35.5px;
    内容:'';
    -webkit变换:透视(15px)旋转(3deg);
    -moz变换:透视(15px)旋转(3deg);
    变换:透视(15px)旋转(3deg);
    }
    /*悬停样式*/
    .按钮:悬停:在,
    .按钮:悬停:之后{
    背景:#000;
    }
    .按钮:悬停:之前{
    顶部:-3px;
    -webkit变换:透视(15px)旋转(3deg);
    -moz变换:透视(15px)旋转(3deg);
    变换:透视(15px)旋转(3deg);
    }
    .按钮:悬停:之后{
    顶部:38px;
    -webkit变换:透视(15px)旋转(-3deg);
    -moz变换:透视(15px)rotateX(-3deg);
    变换:透视(15px)旋转(-3deg);
    }
    .按钮:悬停{
    颜色:#fff;
    }

    Lorem Ipsum
    这是一种不同的方法,仅使用纯CSS即可实现此效果(使用答案中解释的方法,但元素反向旋转)

    基本上,它包含两个伪元素,它们通过一点透视旋转,并将一个放置在另一个下方以实现形状

    此方法的工作原理如下:

  • 两个伪元素
    :before
    :after
    ,大约是主
    的一半大小(包括边框)