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. Jmeter3.0 中文乱码的解决方法

    在Body Data中输入中文时,发现是乱码,如下图 这种情况在jmeter3.0的版本中才会产生,由于3.0中优化body data后,使用默认的字体(Consolas)不支持汉字的显示. 解决方法 ...

  2. 优先选择nullptr而不是0和NULL

    我们知道:0是一个int,而不是一个指针.如果C++在一个只有指针才能够使用的上下文中发现它只有一个0,那么它会勉强将0解释成空指针,但那时一种倒退行为.C++的主要方针是0就是一个int,而不是指针 ...

  3. linux的systemctl服务及其使用

    一.systemd 系统初始化程序,系统开始的第一个进程,PID为1 二.systemctl命令 systemctl list-units    ##列出当前系统服务的状态 systemctl lis ...

  4. JSP基础知识➣获取参数和过滤器(四)

    JSP表单提交和参数获取 JSP表单提交的两种方式:post和get,通过这两种方式提交的参数到后台,获取参数的值主要由request来处理,获取值的方式有以下几种: getParameter():  ...

  5. Ng Alain使用 - cli和克隆两种方式

    感觉没啥要写的,但是在查看相关资料的过程中发现不少浮夸的人,可以说是完全不阅读官方文档,操作完全无厘头,,创建了删,配置,再删除,,,扯蛋....., 方式一:CLI(推荐) # 确保使用的是最新版本 ...

  6. nginx 301重定向一种实现方法

    假设要使用的域名是b.com,以前的老域名是a.com,则以下设置让nginx把a.com的请求访问转发到b.com,并返回301给浏览器. server { listen 80; server_na ...

  7. Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)

            一.接收参数(postman发送) 1.form表单 @RequestParam("name") String name 会把传递过来的Form表单中的name对应 ...

  8. Codeforces 196E Opening Portals MST (看题解)

    Opening Portals 我们先考虑如果所有点都是特殊点, 那么就是对整个图求个MST. 想在如果不是所有点是特殊点的话, 我们能不能也 转换成求MST的问题呢? 相当于我们把特殊点扣出来, 然 ...

  9. springmvc+ajax——第一讲(搭建)

    下面是整个整合测试的代码: ajax01.html TestController web.xml springmvc.xml applicationContext.xml <!DOCTYPE h ...

  10. Hudson与Jenkins

    Hudson是Jenkins的前身,它们都是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1 ...