首页

炫酷大数据可视化界面设计赏析(十一)-3d图形展示

前端达人

大屏可视化界面设计可谓是当今行业、企业发展的见证,生动直观地再现了行业、企业的全貌。不仅作为展示,方便了解、监督;同时可以作为一个有效的管理平台,带来效益。大屏界面面向范围广,协同性好,易于被采用。下面几个大屏的界面设计,沉稳的背景上,加上亮色作为点缀和强调。既不失其风格,又富有灵动性。


接下来为大家分享精美的大屏 UI设计案例:

蓝蓝设计(北京兰亭妙微科技有限公司)是一家专注而深入的UI设计公司,公司对UI设计的追求一向很高,致力于为卓越的国内外企业提供卓越的手机 ui设计、软件界面设计、网站设计,用户研究、交互设计等服务。


WechatIMG1545.pngWechatIMG1547.pngWechatIMG1537.jpegWechatIMG1538.jpegWechatIMG1539.jpeg

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


更多精彩文章:


   大数据可视化界面设计赏析(一)

   大数据可视化界面设计赏析(二)

   大数据可视化界面设计赏析(三)

  大数据可视化界面设计赏析(四)

  大数据可视化界面设计赏析(五)

  大数据可视化界面设计赏析(六)

  大数据可视化界面设计赏析(七)

  大数据可视化界面设计赏析(八)

大数据可视化界面设计赏析(九)

大数据可视化界面设计赏析(十)


前端面试系列-JavaScript-防抖与节流(用节流优化防抖)

前端达人

文章目录

一.函数防抖

二、函数节流

1.时间戳实现

2.定时器实现

3.用节流优化防抖(定时器+时间戳)

三、总结

四、例子

一.函数防抖

当持续触发事件时,并不执行事件处理函数,一定时间段内没有再触发事件,事件处理函数才会执行一次;如果设定的时间到来之前,又一次触发了事件,就重新开始延时。


function debounce(fn, delay) {
  // 定时器
  let timer = null
  // 将debounce处理结果当作函数返回
  return function () {
    // 保留调用时的this上下文
    let context = this
    // 保留调用时传入的参数
    let args = arguments
    // 每次事件被触发时,都去清除之前的旧定时器
    if(timer) {
        clearTimeout(timer)
    }
    // 设立新定时器
    timer = setTimeout(function () {
      fn.apply(context, args)
    }, delay)
  }
}

二、函数节流

当持续触发事件时,保证一定时间段内只调用一次事件处理函数。

1.时间戳实现


function throttle(fn, interval) {
      // last为上一次触发回调的时间
      // 对比时间戳,初始化为0则首次触发立即执行,初始化为当前时间戳则wait毫秒后触发才会执行
      let last = 0;
      // 将throttle处理结果当作函数返回
      return function () {
          // 保留调用时的this上下文
          let context = this
          // 保留调用时传入的参数
          let args = arguments
          // 记录本次触发回调的时间
          let now = Date.now();
          
          // 判断上次触发的时间和本次触发的时间差是否小于时间间隔的阈值
          if (now - last >= interval) {
          // 如果时间间隔大于我们设定的时间间隔阈值,则执行回调
              last = now;
              fn.apply(context, args);
          }
        }
    }

定时器实现


function throttle(fn, wait) {
  let timeout;
  return function() {
    if (!timeout) {
      timeout = setTimeout(() => {
        timeout = null
        fn.call(this, arguments)
      }, wait)
    }
  }
}

3.用节流优化防抖(定时器+时间戳)
防抖的问题在于如果用户的操作十分频繁——他每次都不等 设置的 delay 时间结束就进行下一次操作,于是每次都为该用户重新生成定时器,回调函数被延迟了不计其数次。 频繁的延迟会导致用户迟迟得不到响应,用户同样会产生“这个页面卡死了”的观感。

用节流来优化,保证在一定时间段内会调用一次事件处理函数。

function throttle(fn, delay) {
       // last为上一次触发回调的时间, timer是定时器
       let last = 0, timer = null
       // 将throttle处理结果当作函数返回
       
       return function () { 
         // 保留调用时的this上下文
         let context = this
         // 保留调用时传入的参数
         let args = arguments
         // 记录本次触发回调的时间
         let now = +new Date()
        // +是一元操作符,利用js隐式转换将其他类型变为数字类型
         
         // 判断上次触发的时间和本次触发的时间差是否小于时间间隔的阈值
         if (now - last < delay) {
         // 如果时间间隔小于我们设定的时间间隔阈值,则为本次触发操作设立一个新的定时器
            clearTimeout(timer)
            timer = setTimeout(function () {
               last = now
               fn.apply(context, args)
             }, delay)
         } else {
             // 如果时间间隔超出了我们设定的时间间隔阈值,那就不等了,无论如何要反馈给用户一次响应
             last = now
             fn.apply(context, args)
         }
       }
     }

三、总结
函数防抖:将几次操作合并为一此操作进行。原理是维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,就会取消之前的计时器而重新设置。这样一来,只有最后一次操作能被触发。
函数节流:使得一定时间内只触发一次函数。原理是通过判断是否到达一定时间来触发函数。
区别: 函数节流不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数,而函数防抖只是在最后一次事件后才触发一次函数。
场景:比如在页面的无限加载场景下,我们需要用户在滚动页面时,每隔一段时间发一次 Ajax 请求,而不是在用户停下滚动页面操作时才去请求数据。这样的场景,就适合用节流技术来实现。


转自:csdn 

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


异常的基本知识

前端达人

异常包括的主要关键字有try{}catch(){}finally{} throw和throws五个关键字 。

下面我们来细说一下这五个关键字分别有什么用。

try catch关键字 这两个关键字是连用的

1.如果try块中的语句正常执行完毕,不会发生异常则catch块中的语句都将会被忽略。

2.如果try语句块在执行中遇到异常。并且这个异常与catch中声明的异常类型相匹配,那么在try块中其余剩下的代码都将被忽略。

3.如果try语句块在执行过程中遇到异常,而抛出的异常在catch块中没有被声明,那么程序立刻退出。

finally关键字这个关键字中的代码总能被执行(怎么我都要执行 )

1.只要try中所有语句正常执行完毕,那么finally块就会被执行。

2.如果try语句块在执行过程中碰到异常,无论这种异常能否被catch块捕获到,都将执行finally块中的代码。

注:try—catch—finally结构中try块是必需的catch和finally块为可选,但两者至少须出现其中之一。

如果catch中存在return,finally也会执行只不过执行的顺序有一定差异 ,先执行catch里的代码块,之后执行finally里的代码块,最后执行return语句。

throw关键字抛出异常

throws关键字声明捕捉异常

那么throw和throws有什么区别呢

1.作用不同:throw用于在程序中抛出异常;throws用于声明在该方法内抛出异常。

2.使用的位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。

3.内容不同:throw抛出一个异常对象,而且只能有一个;throws后面跟异常类,而且可以跟多个异常类。

知道了这五个关键字的用法下面我们来说一下几个常用的异常代码:

1.ArithmeticException 试图除以0。

2.NullpointerException 当程序访问一个空对象的成员变量或方法,访问一个空数组的成员时发生。

3.ClassCastException 发生多态后,吐过强制转换的并不是父类的子类时发生。编译的时候可以通过,以为编译的时候并不会检查类型转换的问题。

4.ArraylndwxOutOfBoundsException 访问的元素下标超过数组长度

5.NumberFormatException 数字格式异常。

6.Exception 一般的异常都包括。


转自:csdn 

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

ES6中的let和const和解构赋值

前端达人

ES6中的let和const和解构赋值

什么是ES6?

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。



为什么要使用ES6?

每一次标准的诞生都意味着语言的完善,功能的加强。js语言本身也有一些令人不满的地方



1.变量提升特性增加了程序运行的不可预测性 。



变量提升可以简单看以下代码了解下:



console.log(a);

var a=1;

//console.log(a)会输出undefined



这段代码也可以这样表示



var a;

console.log(a);

a=10;

//依旧输出undefined



这就是变量提升!



2.语法过于松散,实现相同的功能,不同的人可以会写出不同的代码,阅读性较低。



所以:ES6 ,目标是使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。我们没有理由不去学习ES6。



let关键字

ES6中新增的用于声明变量的关键字。主要是替代var。



特征:1.let声明的变量只在所处的块级有效,具有块级作用域! 在ES6之前JS只有全局作用域和局部作用域。



块级作用域:通俗来讲就是在一对大括号中产生的作用域,块级作用域中的变量只能在大括号中访问,在大括号外面是访问不到的。



可以看以下代码:



                if(true){

                let a=10;

                console.log(a);//输出10

                }

                console.log(a);//报错提示a没有定义



                {

                    let b=10;

                    console.log(b);//输出10

                }

                console.log(b);//报错提示b没有定义



              if(true){

              let c=20;

              console.log(c)//输出20

              if(true){

                 let d=30;

                 console.log(c)//输出 20

              }

              console.log(d);//报错d没有定义

            }



在for循环中也起到作用,根据不同的需求选择let和var!

例如:



for(var i=0;i<10;i++){}

                   console.log(i) //输出10

for(let j=0;j<10;j++){}

                   console.log(j) //报错 j没有定义



好处:在业务逻辑比较复杂的时候,可以放在内层变量覆盖外层变量!



2.存在let 一开始就会形成封闭的作用域 使用let命名声明变量前 ,变量不可用,必须先声明后使用,不存在变量提升

例如:



               if(true){

                console.log(temp);//报错

                let temp=1;

               }`



3.let 不允许重复声明 在一个作用域内。



例如:



                if(true){

                let temp;

                console.log(temp);//报错Identifier 'temp' has already been declared

                let temp=1;

                }



               if(true){

                var temp=10;

                let temp=5;

                console.log(temp);//报错 错误和上面一致

               }



但是不在一个作用域内可以 例如:



              {

                let x=10;

                console.log(x);//输出10

            }



            {

                let x=5;

                console.log(5);//输出5

            }



const关键字

const一般用来声明常量,声明一个只读的常量。



特征:1.一旦声明其值不能改变必须立即初始化

例如:



 const a; //这样什声明会直接报错!!!

1

这样声明没有初始化会直接报错!



2.对于对象:存的不是对象的本身, 而是对象的引用, 引用地址 ,地址不变, 对象可拓展!

例如:



           const foo={y:10};

           foo.x=100;

           console.log(foo.x);//输出100

1

2

3

对象可以扩展



但是对象不能改变

例如:foo={n:1000}; 会报错!



作用域:



  var v1=100;

    function f1(){

        console.log(v1,v2); //undefined   no defined 

        var v1=110;

        let v2=200;

        function f2(){

            let v3=300;

            console.log(v1,v2,v3);//110 200 300

        }

        f2();

        console.log(v1,v2,v3);// 110 200 no defined 

    }

    f1();

    console.log(v1,v2,v3);// 100 no defined no defined



可以向外面作用域找 不可以向里面作用域找 内层变量可能会覆盖外层变量



let和var的本质区别:浏览器的顶层对象为window Node的为global,var定义的变量会关联到顶层对象中,let和const不会!

例如:



         var a =100;

        console.log(window.a); // 100

         let b=100;

        console.log(window.b); //undefined

1

2

3

4

如何选择const和let:数据需要变化用let 数据不需要变化用const



解构赋值:ES6中允许从数组中提值,按照对应位置,对变量赋值,对象也可以实现解构!

例如:

 {
    let a,b,c;
    [a,b]=[1,2];
    console.log(a,b,c); //输出 1 2 undefined
}

{
    let a,b,c;
    [a,b,...c]=[1,2,3,4,5,6];
    console.log(a);//输出1
    console.log(b);//输出2
    console.log(c);//输出[3,4,5,6]
}
{
    let a,b,c;
    [a,b,c=3]=[1,2];
    console.log(a,b,c);//输出1 2 3
}
{
    let a,b;
    [a,b]=[1,2];
    [a,b]=[b,a]
    console.log(a,b);//输出 2 1
}
{
    let a,b;
    ({a,b}={a:1,b:2})
    console.log(a,b);//输出 1  2
}
{
    function fun(){
        return [1,2,3,4,5,6]
    };
    let a,b;
    [a,,,,b]=fun();
    console.log(a,b);//输出1 5
}
{
    let o={p:42,q:true};
    let {p,q}=o;
    console.log(p,q);//输出 42 true
}
{
    let {a=10,b=5}={a:3};
    console.log(a,b);//输出 3 5
}

{
    let metaData={
        title:'abc',
        test:[{
            title:'test',
            desc:'description'
        }]
    }
    let {title:esTitle,test:[{title:cnTitle}]}=metaData;
    console.log(esTitle,cnTitle);//输出abc test
}

解构赋值表达式右边的部分表示解构的源;解构表达式左边的部分表示解构的目标,如果左右两边对比成功就返回右边的值,如果没有对比成功就会undefined返回原来的值

除此之外还可以返回一些函数和方法


转自:csdn 作者:勤快的基佬

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

炫酷大数据可视化界面设计赏析(十)

前端达人

大屏可视化界面设计可谓是当今行业、企业发展的见证,生动直观地再现了行业、企业的全貌。不仅作为展示,方便了解、监督;同时可以作为一个有效的管理平台,带来效益。大屏界面面向范围广,协同性好,易于被采用。下面几个大屏的界面设计,沉稳的背景上,加上亮色作为点缀和强调。既不失其风格,又富有灵动性。


接下来为大家分享精美的大屏 UI设计案例:

蓝蓝设计(北京兰亭妙微科技有限公司)是一家专注而深入的UI设计公司,公司对UI设计的追求一向很高,致力于为卓越的国内外企业提供卓越的手机 ui设计、软件界面设计、网站设计,用户研究、交互设计等服务。


WechatIMG1539.jpegWechatIMG1545.pngWechatIMG1547.pngWechatIMG1520.jpegWechatIMG1522.pngWechatIMG1523.pngWechatIMG1524.jpeg



(图片均来源于网络)


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


更多精彩文章:


   大数据可视化界面设计赏析(一)

   大数据可视化界面设计赏析(二)

   大数据可视化界面设计赏析(三)

  大数据可视化界面设计赏析(四)

  大数据可视化界面设计赏析(五)

  大数据可视化界面设计赏析(六)

  大数据可视化界面设计赏析(七)

  大数据可视化界面设计赏析(八)

大数据可视化界面设计赏析(九)


零基础入门前端要掌握哪些知识?

前端达人

零基础如何快速入「]前端?这个问题往往是没有基础会遇到的,想要快速入「门前端开发,简单来说就是要把基础的知识点掌握熟练,然后由浅入深的去学习,在这里根据我过来的经验,为大家简单介绍一下零基础如何快速入门前端。



举个可能不太恰当的例子:前端就好比如盖房子,html就充当 了房子结构这部分,也是房子的基础。css呢, 就好比咱们房子的装修,墙面什么颜色,什么风格,什么地板等等,这些给房子改变风格,样式的就是css。而Java呢,就好比这个房子的功能,房子需要制冷吧,需要暖气吧,也需要上下水吧。这些功能性的就相当于是Java。



一、前端工具(dreamwear/sublime/Photoshop/SVN等)

二、零基础入门(HTML,CSS)

1、前端开发概况、代码入门



页面基本结构、文档声明、编码声明、css语法、style属性、link和style标签、id属性、基本样式、Border 、Background、 Font、盒模型、文本设置等等。



2、常用标签集合



header、article、aside、section、footer、nav、h1-h6、p、ul、ol、li、img、dl、dt、dd…绝对路径、相对路径、标签语义化、标签嵌套规范、SEO…



3、常用选择器&标签类型划分



d、class、类型选择、包含选择、群组选择、通配符、选择器优先级、标签样式初始化订制方案、超链接及伪类划分、标签类型划分及特性、inline、inline-block、block…



4、浮动进阶



浮动的作用、浮动的特性、文档流、浮动的各种问题、clear、BFC(块级格式化上下文)、触发BFC的条件、Haslayout、Haslayout的触发条件…



5、定位



relative相对定位、Absolute绝对定位、Absolute绝对定位、Fixed 固定定位、inherit 继承、static静态定位、默认值、zIndex层级问题、margin负值、透明度…



6、表格和表单



表格标签、表格样式重置、单元格合并、表单元素、表单相关的属性操作、表单默认样式初始…



7、兼容性问题处理



兼容性问题总结、浮动在IE6,7下的各种问题、表单在低版本IE的问题、处理低版本IE对新增标签的支持、CssHack、条件注释语句、PNG问题、透明度的问题、固定定位在IE低版本的处理方式…



8、整站进阶



样式规划、favicon、Css Sprite、Data URI、隐藏元素、测试工具使用、滑动门、等高布局、三列布局、未知宽高图片在容器内水平垂直居中、文本水平垂直居中、多行文本水平垂直居中…



9、css3入门



transition、属性选择器、nth-of-type、nth-child、backgroundSize、box-sizing、圆角,盒模型阴影、文字阴影、rgba、表单高级、H5表单新增属性、E:not(s)、E:target、E::selection、



10、移动端布局



测试环境Emulation、viewport、window.devicePixelRatio、物理分辨率、Media Queries、rem、window.screen、移动端布局相关问题、window.deviceorientationevent、横竖屏判断…



11、Animation和Transform



浏览器前缀、keyFrames、Animation调用、播放次数设置、动画偶数次调用顺序、Animation的问题、无缝滚动、动画播放|暂停、rotate旋转、deg、skew斜切、scale缩放、translate位移、transform-origin、transform的执行顺序问题…



12、Bootstrap前端开发框架



Html语法规范、CSS语法规范、Less 和 Sass 中的嵌套、class 命名、选择器、Normalize.css、栅格系统、排版、代码、响应式工具…


另外关于零基础如何快速入门前端的问题,项目实战这一点很重要,一定要学以致用,我的建议是,只有在实战项目中多加练习才能真正的掌握这门技术!

转自:csdn; 作者:


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

炫酷大数据可视化界面设计赏析(九)

前端达人

大屏可视化界面设计可谓是当今行业、企业发展的见证,生动直观地再现了行业、企业的全貌。不仅作为展示,方便了解、监督;同时可以作为一个有效的管理平台,带来效益。大屏界面面向范围广,协同性好,易于被采用。下面几个大屏的界面设计,沉稳的背景上,加上亮色作为点缀和强调。既不失其风格,又富有灵动性。


接下来为大家分享精美的大屏 UI设计案例:

蓝蓝设计(北京兰亭妙微科技有限公司)是一家专注而深入的UI设计公司,公司对UI设计的追求一向很高,致力于为卓越的国内外企业提供卓越的手机 ui设计、软件界面设计、网站设计,用户研究、交互设计等服务。

WechatIMG1539.jpegWechatIMG1538.jpegWechatIMG1537.jpegWechatIMG1536.jpegWechatIMG1535.jpegWechatIMG1525.pngWechatIMG1524.jpegWechatIMG1523.png



(图片均来源于网络)


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务


更多精彩文章:


   大数据可视化界面设计赏析(一)

   大数据可视化界面设计赏析(二)

   大数据可视化界面设计赏析(三)

  大数据可视化界面设计赏析(四)

  大数据可视化界面设计赏析(五)

  大数据可视化界面设计赏析(六)

  大数据可视化界面设计赏析(七)


web前端客户端基础学习

前端达人

!DOCTYPE html

功能是:告知浏览以哪个版本来解析HTML的元素

注:必须放在第一行

DOCTYPE 文档声明定义

document 文档

type 类型

charset

utf-8



字符编码集



告诉浏览器用哪一个版本来解析文本(包括标点符号,文字)



viewport

视口(可视窗口)



title

标签页标题



HTML元素的组成部分

元素:起始标记、内容和结束标记



某些元素的起始标记内有属性



属性:属性名和属性值



例如:



<a href="/classroom/17">班级</a>

1

起始标记:



结束标记:



内容:班级



属性:href="/classroom/17"



属性名:href



属性值:"/classroom/17"



空元素

类似img元素



<img src="" alt="">

1

没有元素内容和结束标记,称之为:空元素、自闭合元素



乱序铭文

功能:批量生成文本

书写格式:lorem数量(单词个数)

p标签

p标签不能包含(嵌套)p标签,也不能包含标题、div,语义化标签



解析

将我们写出的代码,转换成计算机可以看懂的语言



渲染

再将解析好的语言,通过浏览器渲染展示出来,给用户看。



HTML

是用于定义文档的结构内容(标题、图片等)

HTML英文全称:Hyper Text Markup Language

中文全称:超文本标记语言

CSS

用于定义HTML文档的样式(外观)

CSS英文全称:Cascading Style Sheets

中文全称:层叠样式表

语义化结构

header 页面的头部或者某个区域的头部,一个页面可以使用多个header元素

nav 表示导航栏

article 代表文档、页面或其他可独立部分,常用于定义一篇日志、一条新闻或用户评论。

aside 用于表示当前页面或文章相关的附属信息,可包含该页面或内容相关的引用、侧边栏、广告、导航条等

section 用于表示一个整体的一部分主题

footer 用于表示页面或者某个区域的脚注,可以包含所有放在页面底部的内容

div与语义化结构的区别

div与语义化结构标签的功能是一样的,但是使用语义化结构标签可以让页面结构更加清晰。



a标签

元素书写格式

<a href="目标">内容</a>

1

href属性

页面地址(路径)



多个页面中相互跳转



锚点



可以在同一个页面之间,相互跳转



先将要跳转的位置加上id属性



<h1 id="title2">标题二</h1>

1

将#+属性名



<a href="#title2">跳转到标题二</a>

1

功能链接



打电话



<a href="tel:12345678910">给我打电话</a>

1

发邮件



<a href="mailto:123456789@163.com">给我发邮件</a>

1

返回顶部

<a href="#">返回顶部</a>

1

a标签的打开方式

书写方式:



<a target="_blank" href="目标"></a>

1

属性 target



属性值



_blank 新页面打开



_self 当前页面打开(默认值)



link外部引用的好处

批量修改

复用

绝对路径和相对路径

绝对路径

从根目录开始写,写到要找文件的位置



当网站部署到服务器后,网站中的所有资源都可以通过一个地址(路径)访问



书写格式:协议://域名/目录



使用场景:



访问站外资源时,只能使用绝对路径



访问站内资源时,若网站已部署到服务器,可以使用绝对路径,并可以省略协议和域名。推荐使用相对路径



相对路径

相对路径是相对于当前资源的位置,只能用于访问站内资源



相对路径的书写格式为:./路径



./ 表示当前资源所在的目录,必须作为相对路径的开始,可省略


…/ 表示返回上一级目录 (…/…/可以返回上两级目录,写几次就可以返回几次


转自:csdn 作者:

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服

HTML基础知识

前端达人

HTML概念和元素(标签)

什么是HTML

HTML(Hyper Text Markup Language),中文译名为超文本标记语言,它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。简单来说,就是我们用它所包含的一系列标签来定义网页的布局结构。



什么是HTML标签(元素)

HTML 文档是由 HTML 元素定义的,元素由三部分组成:开始标签、元素内容、结束标签。



HTML 元素以开始标签起始,以结束标签终止,元素的内容是开始标签与结束标签之间的内容。在VSCode中,使用标签只需要输入需要使用的标签名,再按Tab键,编辑器会自动补齐开始标签和结束标签的样式。



温馨提示:

1.标签的括号我们用的是尖括号,这也是HTML代码和CSS(层叠样式表)代码的区别。

2.HTML 标签对大小写不敏感,也就是说不管我们用大写还是小写浏览器都能成功识别,但是为了统一标准,最好还是写小写。



元素的层次结构

大多数 HTML 元素可以包含其他 HTML 元素,形成嵌套结构



如图,div元素内部包含一个p元素,形成嵌套。在嵌套结构中,p的上一级元素是div,我们称div是p的父元素,p是div的子元素,他们之间是父子级关系。



若是如图这样body、div、p三个元素嵌套,p的上一级元素是div,div的上一级元素是body,那么div是body的子元素,body是div的父元素,body和div是父子关系。而p和body中间隔了一个div,那么p就是body的后代元素,body是p的祖先元素,他们是祖先和后代的关系。

若是两个元素拥有一个共同的父元素,也就是两个元素的上一级元素是同一个,那么这两个元素互为兄弟元素。



需要注意的是,两个元素之间不能相互嵌套



p的起始标签在div内部,结束标签却在div外部,这样的嵌套结构是错误的,浏览器在解析的时候会自动在p的起始标签后补上结束标签,在结束标签前面补上起始标签。



当我们打开浏览器检查器之后就会发现div和p的层次结构已经发生了改变。



元素的属性

属性是元素的附加信息,比如超链链接的地址就是元素的附加信息,属性一般写在元素的起始标签里。



这是一个a标签,起始标签的href="http://www.baidu.com"就是a标签的属性,点击‘百度’后自动跳转属性里的网址。属性由属性名和属性值两部分组成,‘href’是属性的属性名,后面的网址是属性值,属性值要用引号括起来



空元素(自闭合元素)

空元素没有元素内容和结束标签,只有起始标签。空元素内可以加上属性,例如插入图片的img标签



img标签没有元素内容和结束标签,起始标签内有属性,属性值是图片地址。

一般情况下,图片用空标签,音频视频不适用空标签



HTML注释

注释是对代码功能的描述,一般是写给开发者和维护者看的,浏览器并不会解析注释里的内容。因为在代码编写的过程中,代码繁多杂乱,写上注释能帮助我们快速理解当前代码的功能,给维护提供方便。





VSCode注释的写法:在尖括号内写上 !–和--,中间写上注释的内容,或者选中想要注释的行,按下快捷键CTRL+?。



语义化标签和div

div是无语义标签,就是没有含义的标签。而所谓语义化标签,就是有含义的标签,一看就知道其内部含义。我们平时使用语义化标签和div来划分区域,他们在功能上是没有任何区别的,只是语义化标签能帮助开发者和维护者清晰地理解划分的每个区域都是用来干嘛的。在HTML5之前都是用div来划分区域,就会导致整篇代码全是div,看得人眼花缭乱不易于阅读,语义化标签的出现就能解决这个问题。

在HTML5中新增了几个语义化标签:



header:用于表示页面的头部

nav:表示导航栏

article:表示文章或其他可独立存在的页面

section:表示一个整体的一部分主题

aside:表示跟周围主题相关的附加信息

footer:表示页面或某个区域的注脚


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服

app,移动端界面赏析,--蓝蓝设计 UI设计资源分享

前端达人

移动互联网的迅速崛起,让移动网页,移动客户端越来越重要,客户端的页面设计也是一门很大的学问。科技迅速发展的今手机屏幕的尺寸越来越放大化,但却始终 很有限,因此,在APP的界面设计中,精简是一贯的准则。这里所说的精简并不是内容上尽可能的少量,而是要注重重点的表达。在视觉上也要遵循用户的视觉逻 辑,用户看着顺眼了,才会真正的喜欢。


如果这几个主要功能入口屏幕占比能更大些、界面中的菜单导航层级能再简化些...也不至于连我自己想找到一个能跟亲人通话的入口都比较困难,更别说老人了。



接下来为大家分享精美的app UI设计案例:

蓝蓝设计(北京兰亭妙微科技有限公司)是一家专注而深入的UI设计公司,公司对UI设计的追求一向很高,致力于为卓越的国内外企业提供卓越的手机 ui设计、软件界面设计、网站设计,用户研究、交互设计等服务。

jhk-1612348648854.pngjhk-1612348722692.pngjhk-1612348736834.pngjhk-1615795194929.png



--手机appUI设计--

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服


日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档