css背景斜角

编写一个斜角的背景界面,利用的是border实现,让border-top和border-right有不同的color,使其看起来就是斜角的效果


一个显示斜角效果的组件bevelEdge
import PropTypes from 'prop-types';
import classNames from 'classnames/bind';
import styles from './style.scss';


const cx = classNames.bind(styles);


const BevelEdge = (props) => {
  const leftStyle = {
    color: props.leftColor
  };
  const rightStyle = `100vw solid ${props.rightColor}`;
  const borderTopStyle = { borderTopColor: leftStyle.color};    //border-top的颜色
  // reverse判断是否需要翻转效果,左斜线/右斜线
  const styleProps = props.reverse ? Object.assign({}, borderTopStyle, {borderRight: rightStyle}) : Object.assign({}, borderTopStyle, {borderLeft: rightStyle});
  return (
    <div className={cx('basic', props.className)} 
      style={styleProps}
    />
  );
};


BevelEdge.propTypes = {
  className: PropTypes.string,
  height: PropTypes.string,
  leftColor: PropTypes.string,
  rightColor: PropTypes.string,
  reverse: PropTypes.bool
};


BevelEdge.defaultProps = {
  className: '',
  height: '',
  leftColor: '',
  rightColor: '',
  reverse: false,
};


export default BevelEdge;


样式basic:
.basic {
  border-top-style: solid;
  width: 0;
  height: 0;
}


当应用这个组件的时候:
import BevelEdge from 'Components/BevelEdge';
const whiteAndGrayBevelEdge = <BevelEdge className={styles.bevelEdge} leftColor="#fff" rightColor="#fafafa" reverse={true} />;


样式bevel-edge确定这个斜线的坡度
  .bevel-edge {
    border-top-width: 135px;
  }


 效果:




如果有其他特别的移动和pc端需要不同的效果,可以加多一个样式名称:
const transparentAndWhiteBevelEdge = <BevelEdge className={cx('bevelEdge', 'transparentAndWhiteBevelEdge')} leftColor="transparent" rightColor="#fff" reverse={true} />;


样式transparentAndWhiteBevelEdge在移动端的效果:
.transparent-and-white-bevel-edge {
  position: absolute;
  top: 161px;
}


而在pc端的效果:
  .transparent-and-white-bevel-edge {
    top: 427px;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值