-
16 |
- word word word word 17 |
- word word word word 18 | ... 19 |
- word word word word 20 |
- word word word word 21 |
├── .gitignore ├── CSS ├── BFC │ └── README.md ├── 模块化css:BEM学习总结 │ └── readme.md └── 盒模型常见问题 │ └── readme.md ├── LICENSE ├── README.md ├── WEB类库插件使用案例 ├── H5移动端调试神器 - vconsole.js │ ├── README.md │ └── images │ │ └── vconsole-demo.png ├── betterScroll.js封装下拉刷新、上拉加载组件踩坑 │ ├── README.md │ ├── image │ │ └── betterScroll.png │ └── package │ │ ├── index.scss │ │ └── index.tsx ├── qrcode.js生成二维码并提供下载(案例) │ ├── README.md │ ├── demo │ │ ├── demo_qrcode.html │ │ ├── demo_qrcode_jquery.html │ │ └── js │ │ │ ├── jquery.min.js │ │ │ ├── qrcode │ │ │ ├── qrcode.js │ │ │ └── qrcode.min.js │ │ │ └── qrcode_jquery │ │ │ └── jquery.qrcode.min.js │ └── img-1.jpg └── 基于cropper.js封装vue在线图片裁剪组件 │ ├── README.md │ ├── cropper-demo.jpg │ └── demo │ └── imgCropper.vue ├── WEB需求问题解决 ├── BingMap在VUE项目中的使用 │ ├── README.md │ ├── demo │ │ ├── bingMap.vue │ │ └── initMap.js │ └── img │ │ ├── Pushpin_1.png │ │ ├── Pushpin_2.png │ │ ├── Pushpin_3.png │ │ └── Pushpin_4.jpeg └── VUE缓存:动态keep-alive │ └── README.md ├── node.js └── 基于node.js构建文件服务器 │ ├── README.md │ └── nodeFileServer │ ├── file │ └── img │ │ ├── 0.jpg │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ └── 7.jpg │ ├── js │ └── suffix.js │ └── server.js ├── react ├── articles │ ├── learning react day 1 │ │ ├── ES6 │ │ │ ├── arrow.js │ │ │ ├── class.js │ │ │ └── templateLiteral.js │ │ └── README.md │ └── learning react day 2 │ │ └── README.md ├── questions │ └── README.md └── react-demo │ └── demo │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json │ ├── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ └── registerServiceWorker.js │ └── yarn.lock ├── web奇技淫巧 ├── JSON数据处理-链型数据与树型数据互转 │ ├── demo │ │ ├── demo_1.js │ │ └── demo_2.js │ ├── img │ │ └── tree.png │ └── readme.md ├── Native JS processing time requirements │ ├── README.md │ └── demo │ │ ├── demo1.js │ │ └── demo2.js ├── js中的slice非常规用法 │ ├── demo.js │ └── readme.md └── 选项卡点击更换背景图 │ ├── icons │ ├── item-0-blue.png │ ├── item-0-red.png │ ├── item-1-blue.png │ ├── item-1-red.png │ ├── item-2-blue.png │ └── item-2-red.png │ ├── images │ └── demo.png │ ├── index.html │ ├── js │ ├── click.js │ └── jquery.min.js │ └── readme.md ├── web概念 ├── ES6、ES7中async、await函数详解 │ └── readme.md └── 事件委托 │ ├── README.md │ └── demo │ └── demo.html ├── 前端常用概念 └── 移动端触摸事件(touchstart、touchmove、touchend) │ ├── README.md │ └── demo │ └── index.html ├── 小程序 ├── 小程序开发-mpvue中使用图表库 │ ├── img │ │ ├── demo-1.png │ │ └── show.gif │ └── readme.md ├── 小程序开发-mpvue构建小程序项目-1-踩坑 │ └── readme.md ├── 小程序开发-利用canvas实现保存二维码海报到本机 │ ├── README.md │ ├── demo │ │ ├── index.vue │ │ ├── readme.md │ │ └── wx.js │ └── img │ │ └── demo.jpg ├── 小程序开发-常用api汇总 │ └── readme.md └── 小程序开发-简明文档-Part 1 │ └── README.md ├── 数据库 ├── learning mongoDB day 1 │ └── README.md ├── learning mongoDB day 2 │ └── nodeServer │ │ ├── package-lock.json │ │ └── server.js └── mac下安装使用mongodb │ └── README.md ├── 框架相关 └── react │ └── react_antd │ └── AntdPro-学习使用-001-安装使用及结构布局.md └── 随笔 └── one day in alibaba └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | npm-debug.log -------------------------------------------------------------------------------- /CSS/BFC/README.md: -------------------------------------------------------------------------------- 1 | 2 | ### 什么是BFC 3 | 4 | > BFC全称Block Formatting Context, 即块格式化上下文。 5 | 6 | ### 视觉格式化模型 7 | 8 | > 视觉格式化模型(visual formatting model)是用来处理文档并将其显示在视觉媒体上的机制。 9 | 10 | 视觉格式化模型定义了盒(Box)的生成 11 | - 块盒 12 | - 行内盒 13 | - 匿名盒(没有名字不能被选择器选中的盒) 14 | 15 | **盒的类型由==display属性==决定** 16 | 17 | ### 盒分类 18 | 19 | #### 1、块盒(block box) 20 | 21 | - 当display为blcok、list-item、table时,称之为块级元素(block-level) 22 | - 视觉上呈现为块,竖直排列 23 | - 默认参与块格式化上下文 24 | - 每个块级元素至少生成一个块级盒,称之为主要块级盒(principal block-level box) 25 | - 一些元素(如 \
followed by a paragraph
44 | followed by more inline text. 45 |{ tips }
373 | } 374 | 375 | /** 376 | * 下拉提示文字 377 | */ 378 | private downTips () { 379 | if (!this.pullDown) return null 380 | const downTipsConfig = this.pullDownTips 381 | let tips = '' 382 | if (this.beforePullDown && !this.isPullingDown) { 383 | tips = this.pullingDownOut ? downTipsConfig.pulling! : downTipsConfig.before 384 | } else { 385 | tips = this.isPullingDown ? downTipsConfig.loading : downTipsConfig.finished! 386 | } 387 | return{ tips }
388 | } 389 | 390 | protected render () { 391 | return{ tips }
256 | } 257 | 258 | /** 259 | * 下拉提示文字 260 | */ 261 | private downTips () { 262 | if (!this.pullDown) return null 263 | const downTipsConfig = this.pullDownTips 264 | let tips = '' 265 | if (this.beforePullDown && !this.isPullingDown) { 266 | tips = this.pullingDownOut ? downTipsConfig.pulling! : downTipsConfig.before 267 | } else { 268 | tips = this.isPullingDown ? downTipsConfig.loading : downTipsConfig.finished! 269 | } 270 | return{ tips }
271 | } 272 | 273 | protected render () { 274 | return');g.push(" |
The water would boil.
36 | } 37 | returnThe water would not boil.
; 38 | } 39 | 40 | // 声明温度输入组件 41 | class TemperatureInput extends React.Component { 42 | constructor(props) { 43 | super(props); 44 | this.handleChange = this.handleChange.bind(this); 45 | } 46 | 47 | handleChange(e) { 48 | this.props.onTemperatureChange(e.target.value); 49 | } 50 | 51 | render() { 52 | const temperature = this.props.temperature; 53 | const scale = this.props.scale; 54 | return ( 55 | 60 | ); 61 | } 62 | } 63 | 64 | class App extends Component { 65 | constructor (props) { 66 | super(props); 67 | this.state = {date: new Date(), num: 20, temperature: '', scale: 'c'}; 68 | this.clickTheBtn = this.clickTheBtn.bind(this); 69 | // 温度控制 70 | this.handleCelsiusChange = this.handleCelsiusChange.bind(this); 71 | this.handleFahrenheitChange = this.handleFahrenheitChange.bind(this); 72 | } 73 | // 组件第一次初始化 74 | componentDidMount () { 75 | this.timerId = setInterval( 76 | () => this.tick(), 77 | 1000 78 | ); 79 | } 80 | // 组件即将销毁 81 | componentWillUnmount () { 82 | clearInterval(this.timerId); 83 | } 84 | 85 | handleCelsiusChange(temperature) { 86 | this.setState({scale: 'c', temperature}); 87 | } 88 | 89 | handleFahrenheitChange(temperature) { 90 | this.setState({scale: 'f', temperature}); 91 | } 92 | 93 | clickTheBtn (e) { 94 | this.setState(prevState => ({ 95 | num: prevState.num + 10 96 | })); 97 | } 98 | 99 | tick () { 100 | this.setState({ 101 | date: new Date() 102 | }) 103 | } 104 | render() { 105 | const scale = this.state.scale; 106 | const temperature = this.state.temperature; 107 | const celsius = scale === 'f' ? tryConvert(temperature, toCelsius) : temperature; 108 | const fahrenheit = scale === 'c' ? tryConvert(temperature, toFahrenheit) : temperature; 109 | return ( 110 |