css进阶 less的使用

简介: less 官网http://lesscss.org/less.pngnpm install -g less# 查看版本lessc -v编写less文件声明字符集@charset "UTF-8";定义less变...

less 官网http://lesscss.org/

less.png
npm install -g less
# 查看版本
lessc -v

编写less文件

  • 声明字符集
@charset "UTF-8";
  • 定义less变量@mainColor
@color: #61A34F;

a {
    background-color: @color;
}
div p {
    background-color: @color;
}
  • less注释格式(两种)
/* 这种类型的格式会被转换到生成的css文件 */

// 这种类型的格式不会被转换到生成的css文件
  • 拼接使用less变量
@pageClass: blackPage

.@{pageClass}{
    background-color: #444444;
}
  • mixin(混入), 分为混入和函数混入
/* 类混入 */
.w50-h50{
  widht: 50px;
  height: 50px;
}

.main-color{
  color: #62868D;
}
/* 定义宽50高50的方块样式 */
.atom-frame{
  .w50-50;
  .main-color;
}
/* 函数混入 */
// 定义函数(默认值为left)
.f(@direction:left){
    float: @direction;
}
// 调用函数
.atom{
  font-size: 50px;
  .f(right);
}
  • 嵌套
/* 为 div 的子标签 p 添加color样式 */
div {
  p{
  color: #62868D;
  }
}
// 当需要与父级连接的时候,如`div:hover`,使用`&`代替父元素
.atom {
  background-color: #62868D
  &:hover{
    background-color: #81D453
  }
}
  • 数值运算
bootstrap默认的12栅格
动态计算, 子元素宽度
    @cell-color: #413F43;
    @cell-number: 5;
    .container{
        margin-top: 50px;
        border: 3px  solid #413F43;
        overflow: hidden;
        .cell {
            width: 100%/@cell-number;
            height: 100px;
            float: left;
            padding: 5px;
            border: 2px solid #9C5E56;
            box-sizing: border-box;
            background-color: @cell-color;
            &:nth-child(2n){

                background-color: lighten(@cell-color, 10%);

            }
            &:hover {
                background-color: lighten(@cell-color, 50%);
            }

        }

    }

/* 当浮动到 */
/*使用内置函数进行运算, 例如, 当鼠标浮动到某方块时, 颜色亮度提升30% 参考: http://lesscss.org/functions/ */
@cell-color: #62868D;
.cell {
    width: 100px;
    height: 100px;
    background-color: @cell-color;
    &:hover {
        background-color: lighten(@cell-color, 20%);
    }
}
  • 导入其它文件的less规则
/* 以导入同级目录下 mystyle.less为例 */
@import "mystyle"

less编译

# 使用node全局安装lessc后, 对文件`base.less`进行编译(类似javac)
lessc base.less base.css
目录
相关文章
|
28天前
|
前端开发 开发者
CSS预处理器Less、Scss
【10月更文挑战第3天】
112 59
|
5月前
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
57 5
|
5月前
|
前端开发 JavaScript UED
CSS进阶 - CSS性能优化
【6月更文挑战第17天】**CSS性能优化关乎美观与速度。减少无用和重复样式,简化选择器,避免频繁重绘与回流,预加载关键CSS,以及模块化代码,能提升加载速度和用户体验。通过代码审查、工具辅助、选择器优化、使用transform和opacity、CSS预加载、以及文件拆分和模块化,开发者可应对复杂网页的性能挑战。**
75 2
|
5月前
|
前端开发 JavaScript 开发者
CSS进阶 - CSS Modules与预处理器简介
【6月更文挑战第17天】前端开发中,CSS Modules和预处理器(如Sass、Less)解决了大规模项目中CSS的管理难题,提升代码复用和维护性。CSS Modules提供局部作用域的类名,避免全局冲突,而预处理器扩展CSS功能,使代码更像编程语言。常见问题包括命名冲突和过度嵌套,可通过自动哈希、少嵌套、合理变量规划来解决。结合两者使用,遵循模块化和适度预处理原则,集成到构建工具中,能优化开发流程。这些技术是现代前端不可或缺的工具。
63 2
|
5月前
|
编解码 前端开发 UED
CSS进阶 - 响应式设计与媒体查询
【6月更文挑战第17天】响应式设计通过媒体查询适应不同设备,确保网页在桌面、平板、手机上提供优化体验。媒体查询是CSS核心技术,允许根据设备特性应用样式。常见问题包括忽视视口设置、硬编码断点和过度依赖查询。解决办法涉及设置正确的视口元标签、基于内容的断点和模块化设计。通过移动优先策略和灵活的断点管理,可创建高效、易维护的响应式网站。
39 1
|
6月前
|
前端开发
CSS进阶
CSS进阶内容
45 2
|
5月前
|
前端开发 JavaScript
CSS进阶-CSS选择器高级:伪类与伪元素
【6月更文挑战第13天】本文探讨了CSS伪类与伪元素的核心概念,包括伪类表示元素状态,伪元素创造抽象内容。常见问题涉及二者区别、冒号使用、顺序优先级及`content`属性。实践技巧涵盖`:not()`选择器、`:hover`与子元素伪类结合及自定义形状。通过代码示例展示了高亮悬停行、添加图标、首行样式和链接颜色的应用。理解并熟练运用伪类和伪元素可提升CSS设计效率和灵活性。
122 2
CSS进阶-CSS选择器高级:伪类与伪元素
|
5月前
|
前端开发 开发者 容器
CSS进阶-Grid布局高级应用
【6月更文挑战第16天】**CSS Grid布局是CSS3的强大力量,用于复杂二维布局。然而,隐式网格、未命名Grid线和缺少响应式设计是常见问题。解决方法包括显式定义网格结构、命名Grid线和结合媒体查询实现响应式。高级技巧涉及自适应列宽、复杂区域布局和元素层叠对齐。代码示例展示了响应式Grid的用法。掌握这些能提升布局效率和设计灵活性。**
70 11
|
5月前
|
前端开发 开发者 容器
CSS进阶-Flexbox高级布局技巧
【6月更文挑战第16天】Flexbox是CSS3的布局模块,简化响应式设计和复杂多列布局。文章探讨了Flex容器与项目属性的区分、垂直居中、防止元素溢出等常见问题及解决方案。此外,还分享了等宽不同高列、圣杯布局和自适应间距等高级技巧。通过示例展示了如何创建垂直居中布局,强调实践和理解核心概念是掌握Flexbox的关键。
71 10
|
5月前
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
120 7