练习,背景图片开发慕课网右下角工具条

前几天学的慕课的一个课程,侧栏工具条开发。这门课程主要的学习价值:

1. 讲解的案例场景很实用,用到的技术点也较多,主要有css精灵,background-position,css transition,requirejs,sass,图标字体等;

2. 原理分析彻底,html结构清晰,sass逻辑合理,最重要的是在讲解过程中体现出的工作方法和工作态度,都能看出讲师的一些优秀的职业素质;

这门课的练习价值:

1. 掌握以上提到的知识点。

2. 看看在这个过程中会有哪些思考总结。

今天实现的方式是第一种,背景图片的方法。实现不难。

html结构:

<div class="toolbar-contaienr">
		<a href="javascript:;" class="toolbar-item toolbar-item-wexin">
			<span></span>
		</a>
		<a href="javascript:;" class="toolbar-item toolbar-item-feedback"></a>
		<a href="javascript:;" class="toolbar-item toolbar-item-app">
			<span></span>
		</a>
		<a href="javascript:;" class="toolbar-item toolbar-item-backtop"></a>
	</div>

这里有两点思考总结:

1. a元素除了toolbar-item这个公共类之外,独有的那个类,如toolbar-item-wexin,该不该加toolbar-item这个前缀。结论是应该加,原因还是为了避免命名冲突,比如很有可能还存在有另外一个css类也叫app,但是这里的app并不想从那个类里面继承样式;

2. span元素该不该加css类。加的话好像语义更清晰了。实际上并不是这样,加了的话就会导致一个文件html代码增多了,而且用css的语义污染了html的语义,注意css的语义只是人为牵强附会的,搜索引擎不认,这里之所以不加的最大原因是因为从这个组件来看,span内部甚至,a元素内部再也没有其他多余元素了。

css: 课程里面用的是sass,好像现在less用的多,我改成less了,基本上差不多,不过在写less的过程中我也发现一些问题:

1. 什么样的东西该抽出来成为变量?

如果说为了灵活性,less里面每个属性值都应该抽出来,定义成变量,方便以后维护,但是这样的话与直接写死在属性规则里面有什么区别,代码量还是很大,而且为了保证这些变量没有命名冲突,还得把名字起的很长。。。我擦。。。所以到底哪些该抽,结论是:

a. 有2处以上属性规则都用到的时候,比如toolbar的宽度以及toolbar里面每个item的宽度,这个在定义的时候肯定需要定义成变量。

b. url里面的一些路径前缀,这个是很有必要的,万一前期文件夹规划不合理,往往都后面都不方便改了。。

暂时只遇到这两个。

哪些没必要?

a. 比如定位的时候,距离父元素的上下左右多少个像素这种,这种往往是根据设计来的,设计变了,你就得变了,你做灵活了,也达不到重用的价值,而且这种地方太多了,都定义的话会增加less的代码量跟复杂度

b. margin padding这些,如果不是框架级别的组件而且还没有重用的话,就别整那么多变量了

c. transition等一些属性相关的时间,变化函数等等,这些影响的是效果,效果出来了就OK了,设置成灵活的没用。

(收)。

时间: 2024-11-05 02:25:49

练习,背景图片开发慕课网右下角工具条的相关文章

练习,字体图标和before,afer伪类的方式开发慕课网右下角工具条

这个效果点击慕课网的这个地址就可以查看. 1. 字体图标的方式 相比较背景图片的方式,使用字体图标,会明显增加html结构的复杂度: <div class="toolbar-container"> <a href="javascript:;" class="tbitem tbitem-weixin"> <div class="tbitem-wrapper"> <span class=&

iOS开发项目篇—47Toolbar工具条

iOS开发项目篇—47Toolbar工具条 一.基本设置 说明:完成微博cell中toolbar的基本设置(转发数.评论数.赞) 实现代码: YYStatusToolbar.m文件 1 // 2 // YYStatusToolbar.m 3 // 4 5 #import "YYStatusToolbar.h" 6 7 @interface YYStatusToolbar () 8 /**用来保存两条竖线*/ 9 @property(nonatomic,strong)NSMutableA

Java微信公众号开发-外网映射工具配置

一.开发环境准备 1.一个微信公众号 2.外网映射工具(开发调试)如花生壳.ngrok工具 注:与微信对接的URL要具备以下条件a:在公网上能够访问 b:端口只支持80端口 这里使用ngrok.cc: ngrok.cc它的服务基于ngrok实现,防止ngrok官网被墙不能访问,把服务器架设在了香港,不仅大大加快了大家的访问速度,还不怕被墙了,而且完全免费.官网地址::http://ngrok.cc/ 搭建步骤: 1.下载客户端 下载链接:http://www.ngrok.cc/index.php

【iOS开发-23】toolbar工具条和toolbarItems:与navigationBar和navigationItem类似,重点是如何排版工具条的元素

(1)toolbar属性.toolbarItems与上一讲的navigationBar.navigationItem类似.只不过toolbarItems没有navigationItem的左右区分,它就自己一个人在做事,相当于没有下属. (2)可以在toolbar上设置很多,比如背景颜色.背景图片.背景样式.大小位置(不过有些貌似设置无效),当然和navigationBar一样,对于它的是否显示和隐藏是由它的老爸即navigationController控制的. (3)重点是:我们可以利用tool

python全栈开发慕课网

前端 web框架: flask:简单.轻量.灵活性大 (官网,stck overflowa); 目录结构:配置,发布,资源,日志,测试... 前后端协作:整体发布,前后端分离发布 django:简单,比flask重,没有flask好,但历史时间长 web.py:简单,轻量,但是不会再积极维护了 ...省略 后端 精通Python语言(数据结构: 字符串str 列表list tuple set dict); 精通Django\flask\web.py前端框架; 精通MySql\MongoDB数据库

如何下载慕课网的视频教程

前不久看到一串慕课网的广告,然后点了进去看了一会,发现里面正好有最近想学的ps视频,就寻思着能不能下载下来回家没事的时候去看看.当然老家是没有网络的,所以必须要提前下载下来. 然而我想到另外一个办法,那就是用app缓存咯,奈何手机存储不够,只好缓存一部分,然后在移动到电脑咯 搜索了一番,发现视频教程存在在/sdcard/Android/data/cn.com.open.mooc/Mooc/video这个目录下面, 用ES文件浏览器才能进入到这个目录的. 于是我又把他导出到电脑上面,可是,尼玛 根

背景图片自适应(2):慕课网首页头部结构

最近经常出没慕课网,本以为是类似我前面写的那种JS计算的全屏背景,今天细细一想...不可能是那种,表现并不一样.就细细看了下结构 首先说一下代码里的left top right bottom:0 这样写,这样做等于分别设置了四个边的位置都是紧贴边框,从而实现一直全屏的效果.四个属性缺一不可. 而background-size:auto 100%; 则让背景图片相对于父容器高度百分百. 然后再给该元素父层设置背景颜色,颜色值为与图片边缘颜色一致. 父层元素,高度等于100%; 最大高度950px;

安卓开发_慕课网_百度地图_添加覆盖物

学习内容来自“慕课网” 本片学习内容接自前四篇基础 安卓开发_慕课网_百度地图 安卓开发_慕课网_百度地图_实现定位 安卓开发_慕课网_百度地图_实现方向传感器 安卓开发_慕课网_百度地图_实现模式转换 请先学习前4篇再学习本篇,因为本篇在前四篇的基础上进行代码的编写 一.新建一个类用来存放数据(距离,点赞数,介绍图等信息) 1 package com.example.map; 2 3 import java.io.Serializable; 4 import java.util.ArrayLi

安卓开发_慕课网_Fragment实现Tab(App主界面)

学习内容来自“慕课网” 这里用Fragment来实现APP主界面 思路: 底部横向排列4个LinearLayout,每个LinearLayout包含一个图片按钮和一个文字 1.默认显示第一个功能(微信)的图标为亮,其他三个为暗 2.点击相应的按钮,首先将所有的图标变暗,接着隐藏所有Fragment,再把点击的对应的Fragment显示出来,并把相应的图标显示亮 首先布局文件 activity_main.xml与ViewPager实现Tab的是不一样的 1 <LinearLayout xmlns: