带有渐变光晕

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>最终版无缝边框 Demo</title>
    <style>
        html {
            font-size: 16px;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            margin: 0;
            padding: 20px;
            box-sizing: border-box;
            background-color: #f0f2f5;
        }

        .display-box {
            display: inline-flex;
            flex-direction: column;
            position: relative; 
            
            min-width: 200px;
            max-width: 560px;
            min-height: 200px;
            max-height: 500px;

            background-color: #ffffff;
            border-radius: 8px; /* 圆角半径 */
            box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
            
            /* 新增:隐藏超出容器的部分,用于裁剪光晕 */
            overflow: hidden;
        }
        
        .display-box::before {
            content: '';
            position: absolute;
            inset: 0;
            
            border-radius: inherit;
            pointer-events: none;
            
            /* 新增:提升边框层级 */
            z-index: 2;

            background: red;

            -webkit-mask:
                linear-gradient(to right, white, transparent) top 0 left 6px / calc(33.33% - 6px) 1px no-repeat,
                linear-gradient(to bottom, white, transparent) top 6px left 0 / 1px calc(33.33% - 6px) no-repeat,
                linear-gradient(to left, white, transparent) bottom 0 right 6px / calc(33.33% - 6px) 1px no-repeat,
                linear-gradient(to top, white, transparent) bottom 6px right 0 / 1px calc(33.33% - 6px) no-repeat,
                radial-gradient(circle at bottom right, transparent 7px, white 7px, white 8px, transparent 8px) top left / 8px 8px no-repeat,
                radial-gradient(circle at top left, transparent 7px, white 7px, white 8px, transparent 8px) bottom right / 8px 8px no-repeat;
            mask:
                linear-gradient(to right, white, transparent) top 0 left 6px / calc(33.33% - 6px) 1px no-repeat,
                linear-gradient(to bottom, white, transparent) top 6px left 0 / 1px calc(33.33% - 6px) no-repeat,
                linear-gradient(to left, white, transparent) bottom 0 right 6px / calc(33.33% - 6px) 1px no-repeat,
                linear-gradient(to top, white, transparent) bottom 6px right 0 / 1px calc(33.33% - 6px) no-repeat,
                radial-gradient(circle at bottom right, transparent 7px, white 7px, white 8px, transparent 8px) top left / 8px 8px no-repeat,
                radial-gradient(circle at top left, transparent 7px, white 7px, white 8px, transparent 8px) bottom right / 8px 8px no-repeat;
        }

        /* 修改:创建椭圆形光晕效果 */
        .display-box::after {
            content: '';
            position: absolute;
            
            /* 尺寸:椭圆形,宽度60%,高度40% */
            width: 60%;
            height: 0;
            padding-bottom: 40%; /* 使用padding-bottom技巧创建响应式椭圆形 */
            
            /* 定位到左下角 */
            left: 0;
            bottom: 0;

            /* 使用transform将椭圆中心向右移动30% */
            transform: translate(-20%, 50%);
            
            /* 创建椭圆形径向渐变光晕 */
            background: radial-gradient(ellipse at center, rgba(255, 0, 0, 0.25) 0%, transparent 70%);
            
            border-radius: 50%;
        }

        .display-box-content {
            padding: 1.25rem;
            padding-right: 2.5rem;
            box-sizing: border-box;
            overflow-y: auto;
            
            /* 新增:提升内容层级,使其位于光晕之上 */
            position: relative;
            z-index: 1;

            scrollbar-width: thin;
            scrollbar-color: #c1c1c1 #f1f1f1;
        }
        
        .title { font-size: 0.875rem; color: #303133; line-height: 1.5; white-space: nowrap; }
        .title .label { font-weight: bold; color: red; font-size: 1rem; margin-right: 0.5em; }
        .details { margin-top: 0.5rem; }
        .suggestion { margin-top: 1rem; }
        .details h3, .suggestion h3 { font-size: 1rem; color: #303133; margin-top: 0; margin-bottom: 0.25rem; font-weight: 600; }
        .details-content, .suggestion-content { font-size: 0.875rem; color: #606266; line-height: 1.7; }
        .details-content { min-height: 50px; }
    </style>
</head>
<body>

    <div class="display-box">
        <div class="display-box-content">
            <div class="title">
                <span class="label">标题:</span><span>关于系统功能更新的详细说明</span>
            </div>
            <div class="details">
                <h3>详情</h3>
                <div class="details-content">
                    <p>此版本在左下角新增了一个椭圆形的渐变光晕效果,作为视觉点缀。</p>
                </div>
            </div>
            <div class="suggestion">
                <h3>建议</h3>
                <div class="suggestion-content">
                    <p>这个效果是通过 ::after 伪元素结合椭圆形径向渐变和 overflow: hidden 实现的,光晕中点已向右移动。</p>
            </div>
        </div>
    </div>

</body>
</html>
相关推荐
jojo是只猫2 小时前
Vue 3 开发的 HLS 视频流播放组件+异常处理
前端·javascript·vue.js
卓码软件测评2 小时前
第三方软件登记测试机构:【软件登记测试机构HTML5测试技术】
前端·功能测试·测试工具·html·测试用例·html5
CS Beginner2 小时前
【html】canvas实现一个时钟
前端·html
qianmo20212 小时前
基于any2web+deepseek实现对三角函数定义的理解
css·html·css3
林烈涛3 小时前
js判断变量是数组还是对象
开发语言·前端·javascript
Komorebi_99993 小时前
Unocss
开发语言·前端
goto_w4 小时前
前端实现复杂的Excel导出
前端·excel
Baklib梅梅4 小时前
2025文档管理软件推荐:效率、安全与协作全解析
前端·ruby on rails·前端框架·ruby
卷Java5 小时前
小程序前端功能更新说明
java·前端·spring boot·微信小程序·小程序·uni-app