Pat*_*ick 15 stylesheet reactjs react-native

我正在开发一个使用覆盖其他容器/ div的三角形的应用程序.如果之前用CSS解决了:
.triangle:after {
content: "";
display: block;
position: absolute;
top: 15px;
left: -15px;
width: 0;
border-width: 0px 0px 15px 15px;
border-style: solid;
}
Run Code Online (Sandbox Code Playgroud)
但这在React中不起作用.什么是最好的解决方案?
Jpo*_*hik 29
仍然可以使用CSS技巧在React Native中绘制三角形.我写了一个类来封装它:https://github.com/Jpoliachik/react-native-triangle
如果你想自己动手写,我用这个工具:http://apps.eky.hk/css-triangle-generator/生成我想要的三角形,并修改款式反应母语的语法.
例如,在CSS中指向的Isosceles三角形90x90读取:
width: 0;
height: 0;
border-style: solid;
border-width: 0 45px 90px 45px;
border-color: transparent transparent #007bff transparent;
Run Code Online (Sandbox Code Playgroud)
但在React Native中,样式将是:
triangle: {
width: 0,
height: 0,
backgroundColor: 'transparent',
borderStyle: 'solid',
borderTopWidth: 0,
borderRightWidth: 45,
borderBottomWidth: 90,
borderLeftWidth: 45,
borderTopColor: 'transparent',
borderRightColor: 'transparent',
borderBottomColor: 'red',
borderLeftColor: 'transparent',
},
Run Code Online (Sandbox Code Playgroud)
Mah*_*our 10
render() {
return (
<View style={[styles.triangle,styles.arrowUp]}/>
);
}
Run Code Online (Sandbox Code Playgroud)
和款式
const styles = {
triangle: {
width: 0,
height: 0,
backgroundColor: 'transparent',
borderStyle: 'solid',
},
arrowUp: {
borderTopWidth: 0,
borderRightWidth: 30,
borderBottomWidth: 30,
borderLeftWidth: 30,
borderTopColor: 'transparent',
borderRightColor: 'transparent',
borderBottomColor: "tomato",
borderLeftColor: 'transparent',
},
arrowRight: {
borderTopWidth: 30,
borderRightWidth: 0,
borderBottomWidth: 30,
borderLeftWidth: "tomato",
borderTopColor: 'transparent',
borderRightColor: 'transparent',
borderBottomColor: 'transparent',
borderLeftColor: "tomato",
},
arrowDown: {
borderTopWidth: 30,
borderRightWidth: 30,
borderBottomWidth: 0,
borderLeftWidth: 30,
borderTopColor: "tomato",
borderRightColor: 'transparent',
borderBottomColor: 'transparent',
borderLeftColor: 'transparent',
},
arrowLeft: {
borderTopWidth: 30,
borderRightWidth: "tomato",
borderBottomWidth: 30,
borderLeftWidth: 0,
borderTopColor: 'transparent',
borderRightColor: "tomato",
borderBottomColor: 'transparent',
borderLeftColor: 'transparent',
},
arrowUpLeft: {
borderTopWidth: 30,
borderRightWidth: "tomato",
borderBottomWidth: 0,
borderLeftWidth: 0,
borderTopColor: "tomato",
borderRightColor: 'transparent',
borderBottomColor: 'transparent',
borderLeftColor: 'transparent',
},
arrowUpRight: {
borderTopWidth: 0,
borderRightWidth: "tomato",
borderBottomWidth: 30,
borderLeftWidth: 0,
borderTopColor: 'transparent',
borderRightColor: "tomato",
borderBottomColor: 'transparent',
borderLeftColor: 'transparent',
},
arrowDownLeft: {
borderTopWidth: 30,
borderRightWidth: 0,
borderBottomWidth: 0,
borderLeftWidth: "tomato",
borderTopColor: 'transparent',
borderRightColor: 'transparent',
borderBottomColor: 'transparent',
borderLeftColor: "tomato",
},
arrowDownRight: {
borderTopWidth: 0,
borderRightWidth: 0,
borderBottomWidth: 30,
borderLeftWidth: "tomato",
borderTopColor: 'transparent',
borderRightColor: 'transparent',
borderBottomColor: "tomato",
borderLeftColor: 'transparent',
},
}
Run Code Online (Sandbox Code Playgroud)
来源:https : //github.com/Jpoliachik/react-native-triangle
| 归档时间: |
|
| 查看次数: |
10767 次 |
| 最近记录: |