css实现翻页效果

如图,鼠标移动到图上,实现右上角翻页的效果,本例主要border边框的设置。

一、基本概念

<html>
    <head>
    <style>
        #demo{
            width:0;
            height:0;
            border:solid 50px;
            border-top-color: #f00 ;
            border-right-color: #ff0 ;
            border-bottom-color:#0f0;    
            border-left-color:#00f;
        }
    </style>
    </head>
    <body>
    <div id="demo"></div>
    </body>
</html>

 

当元素width和height为0,此时的边框呈现如上图所示,相邻的两条边框可以组成新的三角形。

所以我们的翻页效果就是,蓝绿组成新的三角形(颜色设为相同),红黄组成新的三角形(颜色设为相同),并且边框宽度逐渐由0变大的过程。

如果要实现翻页边框的长宽比,则要对边界线两边的边框单独设置,本例即要单独设置红蓝边框或者黄绿边框

<html>
    <head>
    <style>
        #demo{
            width:0;
            height:0;
            border:solid 50px;
            border-top-color: #f00 ;
            border-right-color: #ff0 ;
            border-bottom-color:#0f0;    
            border-left-color:#00f;
            border-width: 80px 80px 50px 50px;
        }
    </style>
    </head>
    <body>
    <div id="demo"></div>
    </body>
</html>

这是对上/右边框设置的效果。

完整代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>border-width效果</title>
    <style type="text/css">
        body {
            background-color: #eaf0f2;
        }
        .paper-flip {
          position: relative;
          width: 500px;
          height: 300px;
          margin: 0 auto;
        }

        /*image-layer*/
        .image-layer {
          width: 500px;
          height: 300px;
          overflow: hidden;
          position: absolute;
          top: 0;
          left: 0;
        }

        .image-layer img {
          width: 500px;
          cursor: pointer;
        }

        .image-layer:before {
          content: '';
          position: absolute;
          top: 0;
          right: 0;
          border-style: solid;
          border-width: 0;
          border-top-color: #fff ;
          border-right-color: #fff;
          border-bottom-color:rgba(0,0,0,0.5);    
          border-left-color:rgba(0,0,0,0.5);
          border-radius: 0 0 0 4px;
          box-shadow: 0 1px 1px rgba(0,0,0,0.5);
          transition:all 0.4s ease-out;
        }

        .image-layer:hover:before{
          border-left-width:50px;
          border-top-width:30px;
        }


    </style>
</head>
<body>
    <div class="paper-flip" id="paper-flip">
      <div class="image-layer" id="image-layer">
        <img src="http://p6.qhimg.com/d/inn/3f563406/table.jpg" alt="">
      </div>
    </div>
</body>
</html>

 

转载于:https://www.cnblogs.com/fj0716/p/4795941.html

<think>我们计划使用纯CSS实现一个分页控件,要求如下:1.总页数为5页,展示5个页码2.支持上一页、下一页3.当前页需要高亮显示4.代码超过20行(CSS部分)实现思路:我们将使用一组链接(<a>)来表示页码,包裹在<nav>和<div>容器中。通过CSS设置样式,并使用相邻兄弟选择器或类来高亮当前页。HTML结构:<navclass="pagination"><ahref="#"class="prev">上一页</a><ahref="#">1</a><ahref="#"class="active">2</a><!--当前页--><ahref="#">3</a><ahref="#">4</a><ahref="#">5</a><ahref="#"class="next">下一页</a></nav>注意:我们需要用CSS来隐藏多余的页码(这里不需要,因为总页数固定为5),但我们可以通过CSS来设置样式,包括当前页的高亮,以及上一页、下一页的样式。由于题目要求只使用CSS(没有JavaScript),所以翻页功能实际上是通过链接跳转,但这里我们主要关注样式。下面我们编写超过20行的CSS代码,包括:-基本布局:使用flex布局让分页项水平排列-设置每个页码链接的样式,包括边框、内边距、边距等-当前页的高亮样式-上一页、下一页的特殊样式(如果需要)-鼠标悬停效果但是注意,因为总页数固定为5,所以不需要动态隐藏页码。另外,考虑到美观,我们还可以添加一些圆角、阴影等效果。下面开始编写代码:</think> 下面我将用纯CSS实现一个简洁美观的分页控件,满足5页内容展示需求,代码超过20行: ### CSS分页实现(5页版) ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>CSS分页控件</title> <style> /* 分页容器样式 */ .pagination { display: flex; justify-content: center; list-style: none; padding: 20px 0; margin: 40px auto; width: 80%; max-width: 500px; background: #f8f9fa; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); font-family: 'Segoe UI', sans-serif; } /* 分页项样式 */ .page-item { margin: 0 5px; } /* 分页链接样式 */ .page-link { display: block; padding: 10px 15px; border: 1px solid #dee2e6; border-radius: 4px; color: #007bff; text-decoration: none; text-align: center; min-width: 40px; transition: all 0.3s ease; } /* 当前页高亮样式 */ .page-item.active .page-link { background: #007bff; color: white; border-color: #007bff; transform: scale(1.05); box-shadow: 0 2px 5px rgba(0,123,255,0.3); } /* 分页链接悬停效果 */ .page-link:hover:not(.active) { background: #e9ecef; border-color: #007bff; transform: translateY(-2px); } /* 禁用状态样式 */ .page-item.disabled .page-link { color: #6c757d; pointer-events: none; background: #e9ecef; opacity: 0.7; } /* 页码之间的分隔符 */ .separator { padding: 10px; color: #6c757d; } /* 响应式调整 */ @media (max-width: 480px) { .page-link { padding: 8px 12px; min-width: 35px; } .separator { padding: 8px; } } </style> </head> <body> <!-- 分页控件 --> <ul class="pagination"> <li class="page-item disabled"> <a class="page-link" href="#" aria-label="上一页">«</a> </li> <li class="page-item active"> <a class="page-link" href="#">1</a> </li> <li class="page-item"> <a class="page-link" href="#">2</a> </li> <li class="page-item"> <a class="page-link" href="#">3</a> </li> <li class="page-item"> <a class="page-link" href="#">4</a> </li> <li class="page-item"> <a class="page-link" href="#">5</a> </li> <li class="page-item"> <a class="page-link" href="#" aria-label="下一页">»</a> </li> </ul> </body> </html> ``` ### 实现要点说明 1. **布局设计**: - 使用Flex布局实现水平居中对齐 - 固定宽度容器确保布局稳定 - 响应式设计适配移动设备 2. **视觉样式**: - 当前页高亮显示(蓝色背景+白色文字) - 过渡动画效果(悬停时的缩放和平移) - 阴影增强立体感 - 圆角边框提升美观度 3. **状态处理**: - 禁用状态的特殊样式(灰色显示) - 悬停状态的反馈效果 - 激活状态的强调显示 4. **交互细节**: - 平滑的状态过渡(transition属性) - 触摸友好的按钮尺寸 - 无障碍标签(aria-label) 这个分页组件完全使用CSS实现,不依赖JavaScript,可以直接复制使用。当前页(激活状态)通过`.active`类标记,其他页点击样式为常规链接样式。对于实际应用,您需要在后端逻辑中动态添加`.active`类到当前页码上[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值