css笔记1

2019-03-26  本文已影响0人  刘叶青

问:css如何引用外部字体?问:png格式的图片和svg格式的图片有什么区别?

答:

<h1>里客云资源站</h1>

<h2>www.likeyunba.com</h2>

<link rel="stylesheet" type="text/css" href="font.css">

font.css如下:

@font-face {

    font-family: 'fontnameRegular';

    src: url('fontname.ttf') format('truetype');

}

/*其中fontName替换为你的字体名称*/

h1{font-family: fontnameRegular}

答:png格式可以通过css手段导致图片变形,svg格式不管你怎么设置css代码,他的宽高比例是一致的

问:<div class="div">我是div</div>

<div class="div">我是div</div>

.div{

            float: left;

            font-size: 16px;

            transform: scale(0.5);

        }

div设置了transform: scale(0.5);让字体小于font-size的值也就是小于16px,但是它占据的宽度仍然跟font-size为16px时一样,为什么呢?

答:设置transform: scale(0.5);以后,还是普通文档流,只能给div设置绝对定位、脱离文档流来解决了

问:如何实现同等宽度下,文字宽度均等分布?

答:

<div class="div1">我是</div>

<div class="div1">我是我是</div>

.div1{

            width:100px;

            background: #f00;

            text-align-last: justify;

        }

注:text-align-last这个属性,在safari浏览器里是不支持的,要兼容safari浏览器的方法:

.container {

            background-color: gray;

            width: 200px;

            text-align: justify;

        }

        .container:after {

            content: '';

            width: 100%;

            display: inline-block;

        }

原文链接:https://blog.csdn.net/isaisai/article/details/51744952

问:怎么让pc端网站兼容移动端?

答:

使用bootstrap的栅格系统

在<head>标签里使用<meta name="viewport" content="width=device-width">

不写绝对宽度,把pc端的px改成rem

学习了flex布局以后,我好像项目里却很少去用,以后要在不需要兼容低版本ie的项目里多用flex布局

问:我有1个需求:就是给一篇文章,默认只显示2行,用了下控制台截图的这个方法,当<div>下面只有文字时,是可以的,如果<div>下面还有<div>就不行了,这个需求,谁有解决思路吗?

答:给个高度,

-webkit-line-clamp: 2;

-webkit-box-orient: vertical;

overflow: hidden;

padding:10rpx 20rpx;

line-height:70rpx;

height:140rpx;

如果需要展开文章内容,把高度设置成height:auto;就行了

IE7不支持box-sizing: border-box,怎么办?

引入boxsizing.htc,然后在使用了box-sizing: border-box的地方,加上:behavior: url("boxsizing.htc");就可以让IE7支持box-sizing: border-box

设置DOM元素的样式时,要按照这样的顺序写:

width,height,padding,border,margin,然后再写color等熟悉

这样写,看上去很规矩,按照样式的重要性来写

我发现,DOM元素的默认背景颜色是透明色的,也就意味着,设置了position:fixed;的div元素,虽然层级更高,但是默认可以看到底部的文字,因为设置了position:fixed;的div元素的背景颜色默认是透明色,div上没有文字的地方,自然就因为透明而显示底部的文字了

以前写过这么一句笔记:能用padding的就不要用margin了,我现在发现,什么时候必须用margin才能实现呢?至少我没有遇到过这种情况,一般我看多嵌套一层<div>就能用padding代替margin

平时写代码的时候就要注意,尽量不写有兼容性问题的代码,比如尽量不用margin,margin在支付宝小程序里问题很多

今天遇到一个需求:就是<video>标签的宽高要撑满整个屏幕,我百度了,没有实现我的需求,我后来在chrome浏览器这里看到这个默认属性:

video{object-fit:contain;}

我一看,是不是修改其中某个属性,能够实现我的需求呢?

然后在chrome浏览器里试了下,写了object-fit,发现有几个值,我把每个值都试了一下,发现object-fit: cover;基本能够满足我的需求,所以,遇到百度仍然找不到答案的时候,就找下浏览器的默认样式,或许可以找到一些线索来帮助自己实现需求

做项目的时候,尽量只用1个css文件,写的时候,页面1的html标签加1个id,比如'page1',css里写#page1 div{},页面2就写#page2 div{},这样有利于维护

问:元素竖向的百分比设定是相对于容器的高度吗?问:某个功能我只会使用es6的语法实现,不知道怎么用es5的语法实现,怎么办?

答:当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度。

问:怎么实现右边固定,左边自适应?

答:

html:

<div class="parent">

    <div class="div1"></div>

    <div class="div2"></div>

</div>

css:

.div1{

            flex-grow:1;

            background: #ff0;

        }

        .div2{

            width: 100px;

            background: #f00;

        }

问:在不使用浮动的前提下,让1个div的宽度等于其内容区的宽度,怎么实现?

答:width: fit-content;

问:怎么让pc端网站兼容移动端?

答:

使用bootstrap的栅格系统

在<head>标签里使用<meta name="viewport" content="width=device-width">

不写绝对宽度,把pc端的px改成rem

注意:当面试官这么问你时,你要知道,让pc端网站兼容移动端这种做法是只能用在简单的网站上,复杂的网站不适合,复杂的网站必须pc端和移动端分离,比如pc端的淘宝是https://www.taobao.com/,移动端的淘宝是https://h5.m.taobao.com/

上一篇下一篇

猜你喜欢

热点阅读