<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>React样式测试</title> <!-- react.js 是React的核心库 --> <script src="./build/react.js charset="utf-8"></script> <!-- react-dom.js是做用是提供与DOM相关的功能 --> <script src="./build/react-dom.js" charset="utf-8"></script> <!-- browser.min.js 的做用是将JSCX语法转换成Javascript的语法 --> <script src="./build/browser.min.js" charset="utf-8"></script> <!-- 还能够直接经过网址引入browser.min.js文件 --> <!-- 好比:<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js" charset="utf-8"></script> --> <style> .pStyle { font-size:30px; } .color{ color:#f00; background:#f00; font-size:50px; } </style> </head> <body> <!-- React渲染的模板内容会插入到这个DOM节点中,做为一个容器 --> <div id="container"> </div>
**<!-- 在React开发中,使用JSX,跟Javascript不兼容,在使用JSX的地方,要设置type:text/babel -->
<!-- babel是一个转换编译器,把ES6转成能够在浏览器中运行的代码 -->
设置组件样式,讲解三种:
一、内联样式
二、对象样式、
三、选择器样式html
注意:在React和HTML5中设置样式时的书写格式是有区别的react
一、HTML5以;结尾** React以,结尾 二、HTML5中key、value都不加引号** React中属于Javascript对象,key的名字不能出现"-",须要使用驼峰命名法。 若是value为字符串,须要加引号。 三、HTML5中,value若是是数字,须要带单位** React中不须要带单位
咱们定义一个组件类,同时使用三种设置组件样式的方式ajax
需求:定义一个组件,分为上下两行显示内容 <div> 内联样式:设置背景颜色、边框大小、边框颜色 <h1></h1> 对象样式:设置背景颜色、字体颜色 <p></p> 选择器样式:设置字体大小 <span></span> 动态添加样式(动态添加选择器样式) </div>
注意:在React中使用选择器设置组件样式时,属性名不能使用class,须要使用className替换浏览器
(由于class在React中是一个关键字) 相似的:使用htmlFor替换for **若是须要动态添加样式能够在setState里面修改**
<script type="text/babel"> var hStyle = { backgroundColor: "green", color: "red" } var ShowMessage = React.createClass({ getInitialState:function(){ return {color:""} }, mouseover:function(){ this.setState({addClass:"color"}) }, render: function() { return ( // 注意;这里的backgroundColor,中间不能加“-” <div style={{backgroundColor:"#ccc", borderWidth:5, borderColor:"brack", broderStyle:"solid"}}> <p className="pStyle">{this.props.title}</p> <h1 style={hStyle}>{this.props.name}</h1> <span className={this.state.addClass} onMouseOver={this.mouseover}>测试鼠标滑过效果</span> </div> ); } }); ReactDOM.render( <ShowMessage name="鹏鹏" title="名字" />, document.getElementById("container") ); </script> </body> </html>