发表于: 2018-09-28 23:19:11

2 899


今天完成的事情

完成了任务11.,学习了css结构。完成了任务12的页面

明天计划的事情:

1、完成任务13.


遇到的问题:




今天在写任务11的时候,用了结构伪类选择器。

dom结构如上图所示。

我本来以为:first-child是选择所有p元素中的第一个p元素。

上面div中的第一个p元素都应用了:first-child的样式,这里的

收获:

这里指的是父级下的第一个元素,而不是所选择元素下的第一个元素。


收获:

1、今天看到有段iconfont的知识,就上网上搜了关于iconfont的有关知识。

优点:
网站使用iconfont图标代替图片图标,可以大大增加前端开发效率。举个例子,假如需要做一个图标,鼠标经过时会变色,如采用iconfont来实现,则2行CSS代码搞定,而且可以自定义图标的任意颜色,如需用到其他项目中去,只需改动代码即可;而采用图片图标来实现,则需要做两张图片,且后期如页面上需要调整颜色,则需重新在绘图软件里修改,较为麻烦。
  其二者,使用iconfont图标代替图片图标,能减少文件体积、降低服务器请求次数,节约宽带资源。这点应该是淘宝使用iconfont的主要原因,像淘宝这种日均PV值动不动就上亿的网站来说,增加几kb大小的文件体积所带来的宽带成本是十分明显的,这必然就会对网页、图片、样式表等文件的体积要求较为苛刻。
缺点:
浏览器将其视为文字进行抗锯齿优化,有时得到的效果并没有想象中那么锐利。 尤其是在不同系统下对文字进行抗锯齿的算法不同,可能会导致显示效果不同。
    Icon Font 作为一种字体,Icon 显示的大小和位置可能要受到font-size、line-height、word-spacing等等 CSS 属性的影响。 Icon 所在容器的 CSS 样式可能对 Icon 的位置产生影响,调整起来很不方便。

 为了实现最大程度的浏览器支持,可能要提供至少四种不同类型的字体文件。包括TTF、WOFF、EOT 以及一个使用 SVG 格式定义的字体。如果是自己制作的话,可能要头疼死。

2、关于text-align:justify

今天遇到一个场景,就是关于两端对齐的,后来发现两端对齐不起作用。

上网百度了,解释就是:

这个是因为text-align不会处理被打断的行和最后一行。因为你这里的文字只占了一行,所以也是最后一行了,所以text-align设置为justify不会产生任何效果。
解决方法是使用text-align-last,并将其设置为justify。
不过不幸的是,text-align-last不是所有浏览器支持。
所以对于不支持text-align-last的,可以在最后一行人工生成两行文本,然后把第二行隐藏了,那么我们要现实的第一行自然就可以实现两端对齐了。

而你的span是inline-block,也可以设置宽度(100%),那么这个时候内联匿名盒的宽度超过行盒,浏览器会将其拆成两行,自然第一行文本的text-align效果就生效了。

解决办法:

第一种做法就是在一行最后中加一个空的i标签,然后使用

display:inline-block;width:100%;此时父级元素后面会增加一行,相当于两行,然后给父级一个确定的高度,确定的行高,然后设置overflow-y:hideen ;隐藏这一行就可以了。

第二种做法:使用text-align-last:justify;

使用最后一行对齐的属性,不过这个属性支持真的差。

第三种做法就是使用:

f'le'x布局也能实现两端对齐的效果

css-task11-任务总结


转至元数据结尾

转至元数据起始

任务名称:CSS-task10-任务总结

成果链接:https://it-xzy.github.io/Task/Web/guowei/css/css11/task11.html

任务耗时:2018.9.26-2018.9.28(2天)

技能脑图:

官网脑图:

自己脑图:

任务总结:


SASS文件就是普通的文本文件,里面可以直接使用CSS语法。文件后缀名是.scss,意思为Sassy CSS。


下面的命令,可以在屏幕上显示.scss文件转化的css代码。(假设文件名为test。)


  sass test.scss


如果要将显示结果保存成文件,后面再跟一个.css文件名。


  sass test.scss test.css


SASS提供四个编译风格的选项:


  * nested:嵌套缩进的css代码,它是默认值。

  * expanded:没有缩进的、扩展的css代码。

  * compact:简洁格式的css代码。

  * compressed:压缩后的css代码。


生产环境当中,一般使用最后一个选项。


  sass --style compressed test.sass test.css


你也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本。


  // watch a file

  sass --watch input.scss:output.css

  // watch a directory

  sass --watch app/sass:public/stylesheets


SASS的官方网站,提供了一个在线转换器。你可以在那里,试运行下面的各种例子。


1.基本用法


 变量


SASS允许使用变量,所有变量以$开头。


  $blue : #1875e7; 

  div {
   color : $blue;
  }


如果变量需要镶嵌在字符串之中,就必须需要写在#{}之中。


  $side : left;

  .rounded {
    border-#{$side}-radius: 5px;
  }


 计算功能


SASS允许在代码中使用算式:


  body {
    margin: (14px/2);
    top: 50px + 100px;
    right: $var * 10%;
  }


嵌套


SASS允许选择器嵌套。比如,下面的CSS代码:


  div h1 {
    color : red;
  }


可以写成:


  div {
    hi {
      color:red;
    }
  }


属性也可以嵌套,比如border-color属性,可以写成:


  p {
    border: {
      color: red;
    }
  }


border后面必须加上冒号。


在嵌套的代码块内,可以使用&引用父元素。比如a:hover伪类,可以写成:


  a {
    &:hover { color: #ffb3ff; }
  }


 注释


SASS共有两种注释风格。


标准的CSS注释 /* comment */ ,会保留到编译后的文件。


单行注释 // comment,只保留在SASS源文件中,编译后被省略。


在/*后面加一个感叹号,表示这是"重要注释"。即使是压缩模式编译,也会保留这行注释,通常可以用于声明版权信息。


  /*! 
    重要注释!
  */


2.代码的重用


 继承


SASS允许一个选择器,继承另一个选择器。比如,现有class1:


  .class1 {
    border: 1px solid #ddd;
  }


class2要继承class1,就要使用@extend命令:


  .class2 {
    @extend .class1;
    font-size:120%;
  }


 Mixin


Mixin有点像C语言的宏(macro),是可以重用的代码块。


使用@mixin命令,定义一个代码块。


  @mixin left {
    float: left;
    margin-left: 10px;
  }


使用@include命令,调用这个mixin。


  div {
    @include left;
  }


mixin的强大之处,在于可以指定参数和缺省值。


  @mixin left($value: 10px) {
    float: left;
    margin-right: $value;
  }


使用的时候,根据需要加入参数:


  div {
    @include left(20px);
  }


下面是一个mixin的实例,用来生成浏览器前缀。


  @mixin rounded($vert, $horz, $radius: 10px) {
    border-#{$vert}-#{$horz}-radius: $radius;
    -moz-border-radius-#{$vert}#{$horz}: $radius;
    -webkit-border-#{$vert}-#{$horz}-radius: $radius;
  }


使用的时候,可以像下面这样调用:


  #navbar li { @include rounded(top, left); }

  #footer { @include rounded(top, left, 5px); }


3.颜色函数


SASS提供了一些内置的颜色函数,以便生成系列颜色。


  lighten(#cc3, 10%) // #d6d65c
  darken(#cc3, 10%) // #a3a329
  grayscale(#cc3) // #808080
  complement(#cc3) // #33c


 插入文件


@import命令,用来插入外部文件。


  @import "path/filename.scss";


如果插入的是.css文件,则等同于css的import命令。


  @import "foo.css";


4.高级用法


条件语句


@if可以用来判断:


  p {
    @if 1 + 1 == 2 { border: 1px solid; }
    @if 5 < 3 { border: 2px dotted; }
  }


配套的还有@else命令:


  @if lightness($color) > 30% {
    background-color: #000;
  } @else {
    background-color: #fff;
  }


5. 循环语句


SASS支持for循环:


  @for $i from 1 to 10 {
    .border-#{$i} {
      border: #{$i}px solid blue;
    }
  }


也支持while循环:


  $i: 6;

  @while $i > 0 {
    .item-#{$i} { width: 2em * $i; }
    $i: $i - 2;
  }


each命令,作用与for类似:


  @each $member in a, b, c, d {
    .#{$member} {
      background-image: url("/image/#{$member}.jpg");
    }
  }


 自定义函数


SASS允许用户编写自己的函数。


  @function double($n) {
    @return $n * 2;
  }

  #sidebar {
    width: double(5px);
  }




返回列表 返回列表
评论

    分享到