直接在DOM元素上添加border-radius 属性,如果DOM元素出现滚动条,圆角会在滚动条的部分被“覆盖”:
可行的解决方案:
在dialog 外层添加一个DOM 元素(div),在这个wrapper 元素上使用border-radius 和 overflow: hidden;
在dialog 内层元素本身上使用overflow: auto;
效果:
源码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .back-drop { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; } .dialog-wrapper { width: 480px; height: 500px; border-radius: 15px; overflow: hidden; background-color: #FFF; } .dialog { height: 100%; overflow: auto; padding: 0 20px; } </style> </head> <body> <div class="back-drop"> <div class="dialog-wrapper"> <div class="dialog"> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> <h1>hello world!</h1> </div> </div> </div> </body> </html>