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. shell 按序删除文件

    一.按时间排序 cd /data/wosbak/hrs/pre/ && ls -A -t | awk '{if(NR>15){print $9}}' | xargs rm -rf ...

  2. 20165323 学习基础和C语言基础调查

    20165323 学习基础和C语言基础调查 一.技能学习心得 1.你有什么技能比大多人更好? 我觉得我羽毛球打的还行,不能说打得比大多数人好,但是对于一些打羽毛球的要领还是掌握的. 2.针对这个技能的 ...

  3. android 如何调用 隐藏的 API 接口

    怎样查看并且使用 Android 隐藏 API 和内部 APIhttps://www.jianshu.com/p/fbf45770ecc8 android 隐藏API显式调用以及内部资源使用方法htt ...

  4. linux shell基本知识

    shell script的一些注意事项: .#这个符号是注释本行,通常用来做批注用,#!除外,是用来标注用哪种shell执行本脚本, .执行顺序为从上到下,从做到右 .忽略空行,tab空格 .脚本换行 ...

  5. 【Android】Android 广播大全

    [Android]Android 广播大全 String ADD_SHORTCUT_ACTION 动作:在系统中添加一个快捷方式. String ALL_APPS_ACTION 动作:列举所有可用的应 ...

  6. Codeforces 765F Souvenirs 线段树 + 主席树 (看题解)

    Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案. 我们先考虑最暴力的做法, ...

  7. 006 numpy常用函数

    属于Numpy的函数. 一:通用函数 1.说明 是一种对ndarray中的数据执行元素级运算的函数. 2.一元函数 3.二元函数 二:矢量计算 1.numpy.where 主要有两种用法 np.whe ...

  8. LoadRunner的函数

     一.基础函数 在VU左边导航栏中,有三个LR框架函数,分别是vuser_init(),Action(),vuser_end(). 这三个函数存在于任何Vuser类型的脚本中: ●vuser_init ...

  9. mybatis中union可以用if判断连接,但是<select>中第一个select语句不能被if判断,因此可以从dual表中查询null来凑齐。union如果使用order by排序,那么只能放在最后一个查询语句的位置,并且不能带表名。

    <!-- 一址多证纳税人分析表 --> <select id="yzdznsrlistPage" parameterType="page" r ...

  10. 20165220 Java第六周学习总结

    教材学习内容总结 正则表达式:正则表达式是一个String对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符. 链表:由若干个称作结点的对象组成的一种数据结构,用于 ...