当前位置:   article > 正文

前端小细节_前端项目细节怎么写

前端项目细节怎么写

目录

关于img图片缝隙问题

vscode快速生成一段英文

清除浮动:

边框显隐问题:

顶部导航栏移入鼠标,展示隐藏框问题:

 关于超链接标签

input框获取焦点,边框问题

修改chrome浏览器滚动条样式

关于框中三角形

关于鼠标移入,隐藏元素缓慢下拉样式

之前小米logo鼠标移入左右切换样式

设置页面图标

关于元素居中

 关于元素获取焦点,类似京东向上移动效果

初识less的使用

 关于定位后元素不显示问题

遮罩层

关于居中问题


关于img图片缝隙问题

 直接设置img会有一个底部缝隙问题,解决

  1. img{
  2. vertical-align: bottom;
  3. }

vscode:

vscode快速生成一段英文

  1. <p>
  2. lorem
  3. </p>

清除浮动

  1. .clearfix::before,
  2. .clearfix::after{
  3. content: '';
  4. display: table;
  5. clear: both;
  6. }

边框显隐问题:

之前做过一个项目是有一个样式问题,写完之后要求获取焦点显示边框,加上border之后发现位置变了;处理的办法

  1. outline: 1px solid red;
  2. outline会显示边框但是不占位置,如果贴着他有文字的话文字会被边框覆盖;
  3. border是会占位置的所以加边框跟不加边框会有一个像素的位置差别;
  4. 也可以用box-sizing: border-box;吧他会吧边框囊括进去,不过没用这个属性;

顶部导航栏移入鼠标,展示隐藏框问题:

  1. .location:hover .city-list{
  2. display: block;
  3. }
  4. location表示父级元素
  5. city-list表示后代
  6. // 建议就是隐藏框使用margin,不要使用flex布局,因为初始布局后如果使用display: block;布局会乱

 关于超链接<a>标签

  1. <a href="#">百度</a>
  2. #设置后可以阻止超链接的跳转,但是设置后会跳转顶部
  3. <a href="javascript:;">百度</a>
  4. javascript设置后也可以阻止跳转,但是不会跳转顶部,不发生任何变化

input框获取焦点,边框问题

  1. input{
  2. border: none;
  3. outline:none;
  4. }
  5. border去除边框问题,获取焦点会有一个获取焦点的边框
  6. outline是取消获取焦点的边框

修改chrome浏览器滚动条样式

  1. ::-webkit-scrollbar {
  2. width: 9px;
  3. height: 14px;
  4. }
  5. ::-webkit-scrollbar-thumb {
  6. /* background-color: #01c8dc;
  7. border-radius: 3px; */
  8. background-color: #334157;
  9. border-radius: 10px;
  10. }

关于框中三角形

 自己写的时候直接在框里面加了个块元素然后设置定位,问题就是样式可能会下渗到子元素就很恶心,

  1. .top-nav-left ul li:nth-of-type(23) a>div>.two{
  2. border: 10px solid;
  3. border-color: transparent transparent #fff transparent;
  4. position: absolute;
  5. top: -17px;
  6. left: 61px;
  7. width: 0;
  8. height: 0;
  9. box-shadow: none;
  10. }

个人不建议这样了,踩过坑了。比较好一点的处理方法是,使用伪元素的方法,提供参考,但是之前已经写完了,就没试过。

  1. .top-nav-left ul li:nth-of-type(23) a>div::before{
  2. content: '';
  3. border: 10px solid;
  4. border-color: transparent transparent #fff transparent;
  5. position: absolute;
  6. top: -17px;
  7. left: 61px;
  8. width: 0;
  9. height: 0;
  10. box-shadow: none;
  11. }

大致是这个样子,需要的话自己修改,或者百度。

关于鼠标移入,隐藏元素缓慢下拉样式

  1. .demo{
  2. width: 200px;
  3. height: 200px;
  4. background-color: #bfa;
  5. transition: height 3s;
  6. }
  7. .demo:hover{
  8. height: 300px;
  9. }

不要设置display属性,block,none;要设置他的高度例子: 0=>100,结合transtion属性也可以设置他的宽度。

之前小米logo鼠标移入左右切换样式

  1. <div class="header-left">
  2. <h1>
  3. <a href="javascript:;" class="home"></a>
  4. <a href="javascript:;" class="mi"></a>
  5. </h1>
  6. </div>
  1. .header-left>h1{
  2. position: relative;
  3. width: 55px;
  4. height: 55px;
  5. overflow: hidden;
  6. }
  7. .header-left>h1>a{
  8. width: 55px;
  9. height: 55px;
  10. display: block;
  11. position: absolute;
  12. background-image: url(https://cdn.pixabay.com/photo/2020/04/30/03/26/rufous-5111261__340.jpg);
  13. background-repeat: no-repeat;
  14. background-size: 100% 100%;
  15. left: 0;
  16. transition: left 3s;
  17. }
  18. .header-left>h1:hover a{
  19. left: 55px;
  20. }
  21. .header-left>h1>a:nth-of-type(2){
  22. width: 55px;
  23. height: 55px;
  24. display: block;
  25. position: absolute;
  26. left: -55px;
  27. background-image: url(https://cdn.pixabay.com/photo/2022/07/24/11/26/fallow-deer-7341424__340.jpg);
  28. background-repeat: no-repeat;
  29. background-size: 100% 100%;
  30. }
  31. .header-left>h1:hover a:nth-of-type(2){
  32. left: 0;
  33. }

仅供参考,有的地方需要修改

设置页面图标

 <link rel="icon" href="./img/favicon.ico">

 .ico图标一般在根目录下

关于元素居中

宽高确定情况下

  1. .box2{
  2. width: 100px;
  3. height: 100px;
  4. background-color: red;
  5. position: absolute;
  6. top: 0;
  7. left: 0;
  8. right: 0;
  9. bottom: 0;
  10. margin: auto;
  11. }
  1. .box2{
  2. width: 100px;
  3. height: 100px;
  4. background-color: red;
  5. position: absolute;
  6. top: 50%;
  7. left: 50%;
  8. transform: translate(-50%,-50%);
  9. }
  10. //没有宽高也可以居中

 关于元素获取焦点,类似京东向上移动效果

  1. .box1{
  2. width: 100px;
  3. height: 200px;
  4. background-color: orange;
  5. margin-right: 50px;
  6. transition: transform .3s;
  7. }
  8. .box1:hover{
  9. transform: translateY(-10px);
  10. box-shadow: 0 0 10px rgba(0, 0, 0, .3);
  11. }

初识less的使用

在html中使用变量

  1. //变量的声明及引用
  2. html{
  3. --color: green;
  4. }
  5. .box{
  6. width: 100px;
  7. height: 100px;
  8. background-color: var(--color);
  9. }

使用插件easyless使用变量

  1. @a:yellow;
  2. .box{
  3. background-color: red;
  4. .box1{
  5. background-color: @a;
  6. .box3{
  7. background-color: @a;
  8. }
  9. }
  10. .box2{
  11. background-color: red;
  12. }
  13. }
  14. 使用变量当做值是用
  1. @c:box9;
  2. .@{c}{
  3. width: 200px;
  4. height: 200px;
  5. background-color: @a;
  6. background-image: url('@{c}/i.png');
  7. }
  8. 使用变量当做类使用是加括号,背景图片也是,还要加引号

如果变量重复,则用就近原则

  1. .main{
  2. color: red;
  3. background-color: $color;
  4. >.box{
  5. color: red;
  6. }
  7. &:hover{
  8. color: yellow;
  9. }
  10. }
  11. $color会使用color的样式,如果easyless版本第可能会不生效问题
  12. >.box{
  13. color: red;
  14. }
  15. 表示子元素选择器
  16. &:hover{
  17. color: yellow;
  18. }
  19. &表示给自己加样式
  1. .p1{
  2. width: 100px;
  3. height: 100px;
  4. }
  5. .p2:extend(.p1){
  6. color: red;
  7. }
  8. .p3{
  9. .p1()
  10. }
  11. .p4(){
  12. width: 500px;
  13. height: 500px;
  14. background-color: red;
  15. }
  16. :extend表示p2独有的
  17. .p3直接引用p1的样式
  18. .p4()表示混合函数,样式不会生效,只有引用时生效
  1. .con(@w,@a:red){
  2. width: 100px;
  3. height: @w;
  4. color: @a;
  5. }
  6. //上边表示混合函数,可以指定默认参数
  7. .con1{
  8. .con(100px)
  9. }
  10. //下面如果引用必须传值,顺序是一一对应

 关于定位后元素不显示问题

定位后元素的层级不高,被图片或者层级较高的遮挡,需要给元素设置z-index置顶一个较大的值

  1. .popup{
  2. position: fixed;
  3. top: 50%;
  4. left: 50%;
  5. transform: translateY(-50%);
  6. z-index: 999;
  7. width: 500rpx;
  8. background-color: #fff;
  9. margin-left: -251rpx;
  10. }

遮罩层

  1. //遮罩层
  2. .mask{
  3. position: fixed;
  4. top: 0;
  5. left: 0;
  6. right: 0;
  7. bottom: 0;
  8. background-color: rgba(0, 0, 0, 0.65);
  9. z-index: 999;
  10. }
  11. //层上的东西
  12. .popup{
  13. position: fixed;
  14. top: 50%;
  15. left: 50%;
  16. transform: translateY(-50%);
  17. z-index: 1000;
  18. width: 500rpx;
  19. background-color: #fff;
  20. margin-left: -251rpx;
  21. display: flex;
  22. justify-content: center;
  23. align-items: center;
  24. flex-direction: column;
  25. }

显示的部分一定要比遮罩层的z-index大不然就是在遮罩层下面

关于居中问题

 一般三个标签来说居中很简单

    display: flex;
    justify-content: space-between;
     align-items: center;

设置之后就可以实现居中,但是如果两个标签,或者一个标签来说就有点麻烦,一个标签还好一点,如果是两个标签的话 

  1. <view class="nav">
  2. <i class="fa-solid fa-chevron-left" @click="backgo"></i>
  3. <text>{{title}}</text>
  4. <i class="fa-solid fa-chevron-left"></i>
  5. </view>
  6. .nav{
  7. display: flex;
  8. justify-content: space-between;
  9. align-items: center;
  10. padding: 20rpx;
  11. background-color: #22a7f2;
  12. color: #fff;
  13. i:nth-of-type(2){
  14. visibility: hidden;
  15. }
  16. }
  17. .nav里面有三个属性,只需要把不需要的属性设置visibility: hidden;就可以实现这个标签隐藏,但他是占位置的所以可以实现居中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/299387
推荐阅读
相关标签
  

闽ICP备14008679号