React使用Styled-Componets来添加样式


Styled-Comonents是用JS中ES6

语法的方式来管理CSS样式的一个组件,解决了在import CSS文件时样式重复

安装


  1. 项目根目录下打开bash
yarn add styled-components
  1. 新建一个style.js文件来添加样式

注意,这里不是用style.css文件。

使用


style.js

/*
* @Author: YooHoeh
* @Date: 2018-07-17 16:23:09
* @Last Modified by: YooHoeh
* @Last Modified time: 2018-07-18 16:43:05
* @Description:
*/ import styled from "styled-components";
import logoPic from "../../statics/logo.png"; export const HeaderWrapper = styled.div` //导出以一个组件名为HeaderWrapper的样式,
position: reletive;
height: 56px;
// background: red; //支持添加//来添加注释,这行样式将不会执行
border-bottom: 1px solid #f0f0f0f0;
`; export const Logo = styled.a.attrs({
href: "/" //通过attrs()方法为组件添加其他属性
})`
width: 100px;
background: url(${logoPic}); //只能使用import的方式将图片导入,不能填写直接填写本地路径 `;

index.js

/*
* @Author: YooHoeh
* @Date: 2018-07-17 16:18:56
* @Last Modified by: YooHoeh
* @Last Modified time: 2018-07-18 17:48:48
* @Description:
*/ import
'''''';
import {
HeaderWrapper,
Logo
} from "./style"; export default class Header extends Component {
''''
render() {
return (
<HeaderWrapper> //这里用style.js中对应的组件名,渲染的时候会替换成对应的标签类型。
<Logo />
</HeaderWrapper>
);
}
}

进阶用法


子代选择

index.js

    <Item >
<input className='active'/>
<input/>
<input/>
</Item >

style.js

    const Item = styled.div`
font-size:15px;
.active{ //和Sass格式一样,在里面可以直接添加可以表示子代拥有
border:1px solid red;
}
`

多Class名选择

index.js

    <Item className='item active'>1</Item >
<Item className='item'>2</Item >

style.js

    const Item = styled.div`
font-size:15px;
&.active{ //添加&可以表示同时拥有
color:red;
}
`

React使用Styled-Componets来添加样式的更多相关文章

  1. react 给选中的li添加样式(转载)

    路:使用事件委托,关键:获取到的index必须转为数字,因为它是字符串 handleClick = (e) => { const nodeName = e.target.nodeName.toU ...

  2. react动态添加样式:style和className

    react开发过程中,经常会需要动态向元素内添加样式style或className,那么应该如何动态添加呢??? 一.react向元素内,动态添加style 例如:有一个DIV元素, 需要动态添加一个 ...

  3. react之四种组件中DOM样式设置方式

    1.行内样式 想给虚拟dom添加行内样式,需要使用表达式传入样式对象的方式来实现 行内样式需要写入一个样式对象,而这个样式对象的位置可以放在很多地方 例如:render函数里.组件原型上.外链js文件 ...

  4. [转]用CSS给SVG <use>的内容添加样式

    来源:http://www.w3cplus.com/svg/styling-svg-use-content-css.html?utm_source=tuicool&utm_medium=ref ...

  5. 为html.EditorFor添加样式

    有网友问及,怎样为html.EditorFor添加样式. 解决方法,可以参考下面语法: 先new一个htmlAttributes. @model Book @using Insus.NET.Model ...

  6. JQuery为元素添加样式

    由于jquery支持css3,所有能很好的兼容很多浏览器,所以通过jquery来使用css样式比较好 为定义好的css样式可以调用元素的css方法添加样式 $("span").cs ...

  7. JavaScript 应用开发 #5:为完成的任务添加样式

    判断一下任务的状态,如果是完成的任务,可以在任务项目的上面,添加一个额外的 css 类,在这个 css 类里,可以去定义完成的任务的样式.比如,把文字的颜色变成浅友色,并且在文字上面添加一条删除线.这 ...

  8. HTML添加样式三种办法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Javascrip动态添加样式,Dom操作,获取自定义属性

    var layer=document.querySelector('.layer') 添加样式: 添加单个样式: layer.style.display="block" 添加多个样 ...

随机推荐

  1. python DLL接口测试

    #coding=utf-8 import clr import sys import threading from itertools import permutations sys.path.app ...

  2. 学习Maven POM

    什么是POM POM stands for "Project Object Model".It is an XML representation of a Maven projec ...

  3. python--使用递归的方式建立二叉树

    树和图的数据结构,就很有意思啦. # coding = utf-8 class BinaryTree: def __init__(self, root_obj): self.key = root_ob ...

  4. 阿里 Goldeneye 四个环节落地智能监控:预测、检测、报警及定位

    阿里 Goldeneye 四个环节落地智能监控:预测.检测.报警及定位 https://www.infoq.cn/article/alibaba-goldeneye-four-links

  5. 自建yum仓库yum源

    目的:搭建自己的yum源主要是解决大批量服务器下载更新人互联网带宽占用问题及速度问题以及不能访问的问题. 服务端:  步骤如下: 一.创建一个目录,就是我们yum软件存放的目录 [root@vicwe ...

  6. http账户密码的截取

    首先,http的前提也是基于arp欺骗的,当arp欺骗成功后,方可进行. 具体步骤如下: 1.打开终端,先进行流量的转发:echo  1  >/proc/sys/net/ipv4/ip_forw ...

  7. ELK5.3日志分析平台&部署

    https://www.cnblogs.com/xing901022/p/6030296.html ELK简介: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现 ...

  8. NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp

    原文链接https://www.cnblogs.com/zhouzhendong/p/9261079.html 题目传送门 - 洛谷P3959 题目传送门 - Vijos P2032 题意 给定一个 ...

  9. UOJ#219/BZOJ4650 [NOI2016]优秀的拆分 字符串 SA ST表

    原文链接http://www.cnblogs.com/zhouzhendong/p/9025092.html 题目传送门 - UOJ#219 (推荐,题面清晰) 题目传送门 - BZOJ4650 题意 ...

  10. Java中String直接赋字符串和new String的区别(面试常考)

    摘取自:https://www.cnblogs.com/guozhenqiang/p/5633269.html 解析Java中的String对象的数据类型 1. String是一个对象.  因为对象的 ...