😉 修复 layer offset 百分比偏移
This commit is contained in:
parent
adbf88cb5c
commit
d9b88a4bff
@ -13,7 +13,7 @@ import { ref } from 'vue'
|
||||
export default {
|
||||
setup() {
|
||||
|
||||
const src = ref("https://portrait.gitee.com/uploads/avatars/user/30/92529_sentsin_1578917144.jpg")
|
||||
const src = ref("https://portrait.gitee.com/uploads/avatars/user/2813/8441097_shaynas_1610801433.png")
|
||||
|
||||
return {
|
||||
src
|
||||
@ -40,7 +40,7 @@ export default {
|
||||
|
||||
setup() {
|
||||
|
||||
const src = "https://portrait.gitee.com/uploads/avatars/user/30/92529_sentsin_1578917144.jpg"
|
||||
const src = "https://portrait.gitee.com/uploads/avatars/user/2813/8441097_shaynas_1610801433.png"
|
||||
|
||||
return {
|
||||
src
|
||||
@ -69,7 +69,7 @@ import { ref } from 'vue'
|
||||
export default {
|
||||
setup() {
|
||||
|
||||
const src = "https://portrait.gitee.com/uploads/avatars/user/30/92529_sentsin_1578917144.jpg"
|
||||
const src = "https://portrait.gitee.com/uploads/avatars/user/2813/8441097_shaynas_1610801433.png"
|
||||
|
||||
return {
|
||||
src
|
||||
|
@ -47,13 +47,12 @@
|
||||
"@vue/server-renderer": "^3.2.20",
|
||||
"escape-html": "^1.0.3",
|
||||
"less": "^4.1.2",
|
||||
"less-loader": "^10.2.0",
|
||||
"markdown-it-container": "^3.0.0",
|
||||
"prismjs": "^1.25.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"typescript": "^4.4.3",
|
||||
"vite": "2.5.10",
|
||||
"vite-plugin-md": "^0.6.7"
|
||||
"typescript": "^4.5.2",
|
||||
"vite": "2.6.14",
|
||||
"vite-plugin-md": "^0.11.4"
|
||||
},
|
||||
"files": [
|
||||
"lib",
|
||||
|
@ -1,3 +1,5 @@
|
||||
@import url("../font/iconfont.less");
|
||||
|
||||
.layui-inline,
|
||||
img {
|
||||
display: inline-block;
|
||||
@ -260,760 +262,6 @@ a cite {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: layui-icon;
|
||||
src: url(../font/iconfont.eot?t=270);
|
||||
src: url(../font/iconfont.eot?t=270#iefix) format('embedded-opentype'),
|
||||
url(../font/iconfont.woff2?t=270) format('woff2'),
|
||||
url(../font/iconfont.woff?t=270) format('woff'),
|
||||
url(../font/iconfont.ttf?t=270) format('truetype'),
|
||||
url(../font/iconfont.svg?t=270#layui-icon) format('svg');
|
||||
}
|
||||
|
||||
.layui-icon {
|
||||
font-family: layui-icon !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.layui-icon-eye:before {
|
||||
content: '\e695';
|
||||
}
|
||||
|
||||
.layui-icon-eye-invisible:before {
|
||||
content: '\e696';
|
||||
}
|
||||
|
||||
.layui-icon-backspace:before {
|
||||
content: '\e694';
|
||||
}
|
||||
|
||||
.layui-icon-help-circle:before {
|
||||
content: '\e77c';
|
||||
}
|
||||
|
||||
.layui-icon-tips-fill:before {
|
||||
content: '\eb2e';
|
||||
}
|
||||
|
||||
.layui-icon-test:before {
|
||||
content: '\e692';
|
||||
}
|
||||
|
||||
.layui-icon-clear:before {
|
||||
content: '\e788';
|
||||
}
|
||||
|
||||
.layui-icon-keyboard:before {
|
||||
content: '\e693';
|
||||
}
|
||||
|
||||
.layui-icon-heart-fill:before {
|
||||
content: '\e68f';
|
||||
}
|
||||
|
||||
.layui-icon-light:before {
|
||||
content: '\e748';
|
||||
}
|
||||
|
||||
.layui-icon-music:before {
|
||||
content: '\e690';
|
||||
}
|
||||
|
||||
.layui-icon-time:before {
|
||||
content: '\e68d';
|
||||
}
|
||||
|
||||
.layui-icon-ie:before {
|
||||
content: '\e7bb';
|
||||
}
|
||||
|
||||
.layui-icon-firefox:before {
|
||||
content: '\e686';
|
||||
}
|
||||
|
||||
.layui-icon-at:before {
|
||||
content: '\e687';
|
||||
}
|
||||
|
||||
.layui-icon-bluetooth:before {
|
||||
content: '\e689';
|
||||
}
|
||||
|
||||
.layui-icon-chrome:before {
|
||||
content: '\e68a';
|
||||
}
|
||||
|
||||
.layui-icon-edge:before {
|
||||
content: '\e68b';
|
||||
}
|
||||
|
||||
.layui-icon-heart:before {
|
||||
content: '\e68c';
|
||||
}
|
||||
|
||||
.layui-icon-key:before {
|
||||
content: '\e683';
|
||||
}
|
||||
|
||||
.layui-icon-android:before {
|
||||
content: '\e684';
|
||||
}
|
||||
|
||||
.layui-icon-mike:before {
|
||||
content: '\e6dc';
|
||||
}
|
||||
|
||||
.layui-icon-mute:before {
|
||||
content: '\e685';
|
||||
}
|
||||
|
||||
.layui-icon-gift:before {
|
||||
content: '\e627';
|
||||
}
|
||||
|
||||
.layui-icon-windows:before {
|
||||
content: '\e67f';
|
||||
}
|
||||
|
||||
.layui-icon-ios:before {
|
||||
content: '\e680';
|
||||
}
|
||||
|
||||
.layui-icon-logout:before {
|
||||
content: '\e682';
|
||||
}
|
||||
|
||||
.layui-icon-wifi:before {
|
||||
content: '\e7e0';
|
||||
}
|
||||
|
||||
.layui-icon-rss:before {
|
||||
content: '\e808';
|
||||
}
|
||||
|
||||
.layui-icon-email:before {
|
||||
content: '\e618';
|
||||
}
|
||||
|
||||
.layui-icon-reduce-circle:before {
|
||||
content: '\e616';
|
||||
}
|
||||
|
||||
.layui-icon-transfer:before {
|
||||
content: '\e691';
|
||||
}
|
||||
|
||||
.layui-icon-service:before {
|
||||
content: '\e626';
|
||||
}
|
||||
|
||||
.layui-icon-addition:before {
|
||||
content: '\e624';
|
||||
}
|
||||
|
||||
.layui-icon-subtraction:before {
|
||||
content: '\e67e';
|
||||
}
|
||||
|
||||
.layui-icon-slider:before {
|
||||
content: '\e714';
|
||||
}
|
||||
|
||||
.layui-icon-print:before {
|
||||
content: '\e66d';
|
||||
}
|
||||
|
||||
.layui-icon-export:before {
|
||||
content: '\e67d';
|
||||
}
|
||||
|
||||
.layui-icon-cols:before {
|
||||
content: '\e610';
|
||||
}
|
||||
|
||||
.layui-icon-screen-full:before {
|
||||
content: '\e622';
|
||||
}
|
||||
|
||||
.layui-icon-screen-restore:before {
|
||||
content: '\e758';
|
||||
}
|
||||
|
||||
.layui-icon-rate-half:before {
|
||||
content: '\e6c9';
|
||||
}
|
||||
|
||||
.layui-icon-rate-solid:before {
|
||||
content: '\e67a';
|
||||
}
|
||||
|
||||
.layui-icon-rate:before {
|
||||
content: '\e67b';
|
||||
}
|
||||
|
||||
.layui-icon-cellphone:before {
|
||||
content: '\e678';
|
||||
}
|
||||
|
||||
.layui-icon-vercode:before {
|
||||
content: '\e679';
|
||||
}
|
||||
|
||||
.layui-icon-login-weibo:before {
|
||||
content: '\e675';
|
||||
}
|
||||
|
||||
.layui-icon-login-qq:before {
|
||||
content: '\e676';
|
||||
}
|
||||
|
||||
.layui-icon-login-wechat:before {
|
||||
content: '\e677';
|
||||
}
|
||||
|
||||
.layui-icon-username:before {
|
||||
content: '\e66f';
|
||||
}
|
||||
|
||||
.layui-icon-password:before {
|
||||
content: '\e673';
|
||||
}
|
||||
|
||||
.layui-icon-refresh-3:before {
|
||||
content: '\e9aa';
|
||||
}
|
||||
|
||||
.layui-icon-auz:before {
|
||||
content: '\e672';
|
||||
}
|
||||
|
||||
.layui-icon-shrink-right:before {
|
||||
content: '\e668';
|
||||
}
|
||||
|
||||
.layui-icon-spread-left:before {
|
||||
content: '\e66b';
|
||||
}
|
||||
|
||||
.layui-icon-snowflake:before {
|
||||
content: '\e6b1';
|
||||
}
|
||||
|
||||
.layui-icon-tips:before {
|
||||
content: '\e702';
|
||||
}
|
||||
|
||||
.layui-icon-note:before {
|
||||
content: '\e66e';
|
||||
}
|
||||
|
||||
.layui-icon-senior:before {
|
||||
content: '\e674';
|
||||
}
|
||||
|
||||
.layui-icon-refresh-1:before {
|
||||
content: '\e666';
|
||||
}
|
||||
|
||||
.layui-icon-refresh:before {
|
||||
content: '\e669';
|
||||
}
|
||||
|
||||
.layui-icon-flag:before {
|
||||
content: '\e66c';
|
||||
}
|
||||
|
||||
.layui-icon-theme:before {
|
||||
content: '\e66a';
|
||||
}
|
||||
|
||||
.layui-icon-notice:before {
|
||||
content: '\e667';
|
||||
}
|
||||
|
||||
.layui-icon-console:before {
|
||||
content: '\e665';
|
||||
}
|
||||
|
||||
.layui-icon-website:before {
|
||||
content: '\e7ae';
|
||||
}
|
||||
|
||||
.layui-icon-face-surprised:before {
|
||||
content: '\e664';
|
||||
}
|
||||
|
||||
.layui-icon-set:before {
|
||||
content: '\e716';
|
||||
}
|
||||
|
||||
.layui-icon-template:before {
|
||||
content: '\e663';
|
||||
}
|
||||
|
||||
.layui-icon-app:before {
|
||||
content: '\e653';
|
||||
}
|
||||
|
||||
.layui-icon-template-1:before {
|
||||
content: '\e656';
|
||||
}
|
||||
|
||||
.layui-icon-home:before {
|
||||
content: '\e68e';
|
||||
}
|
||||
|
||||
.layui-icon-female:before {
|
||||
content: '\e661';
|
||||
}
|
||||
|
||||
.layui-icon-male:before {
|
||||
content: '\e662';
|
||||
}
|
||||
|
||||
.layui-icon-tread:before {
|
||||
content: '\e6c5';
|
||||
}
|
||||
|
||||
.layui-icon-praise:before {
|
||||
content: '\e6c6';
|
||||
}
|
||||
|
||||
.layui-icon-rmb:before {
|
||||
content: '\e65e';
|
||||
}
|
||||
|
||||
.layui-icon-more:before {
|
||||
content: '\e65f';
|
||||
}
|
||||
|
||||
.layui-icon-camera:before {
|
||||
content: '\e660';
|
||||
}
|
||||
|
||||
.layui-icon-cart-simple:before {
|
||||
content: '\e698';
|
||||
}
|
||||
|
||||
.layui-icon-face-cry:before {
|
||||
content: '\e69c';
|
||||
}
|
||||
|
||||
.layui-icon-face-smile:before {
|
||||
content: '\e6af';
|
||||
}
|
||||
|
||||
.layui-icon-survey:before {
|
||||
content: '\e6b2';
|
||||
}
|
||||
|
||||
.layui-icon-read:before {
|
||||
content: '\e705';
|
||||
}
|
||||
|
||||
.layui-icon-location:before {
|
||||
content: '\e715';
|
||||
}
|
||||
|
||||
.layui-icon-dollar:before {
|
||||
content: '\e659';
|
||||
}
|
||||
|
||||
.layui-icon-diamond:before {
|
||||
content: '\e735';
|
||||
}
|
||||
|
||||
.layui-icon-return:before {
|
||||
content: '\e65c';
|
||||
}
|
||||
|
||||
.layui-icon-camera-fill:before {
|
||||
content: '\e65d';
|
||||
}
|
||||
|
||||
.layui-icon-fire:before {
|
||||
content: '\e756';
|
||||
}
|
||||
|
||||
.layui-icon-more-vertical:before {
|
||||
content: '\e671';
|
||||
}
|
||||
|
||||
.layui-icon-cart:before {
|
||||
content: '\e657';
|
||||
}
|
||||
|
||||
.layui-icon-star-fill:before {
|
||||
content: '\e658';
|
||||
}
|
||||
|
||||
.layui-icon-prev:before {
|
||||
content: '\e65a';
|
||||
}
|
||||
|
||||
.layui-icon-next:before {
|
||||
content: '\e65b';
|
||||
}
|
||||
|
||||
.layui-icon-upload:before {
|
||||
content: '\e67c';
|
||||
}
|
||||
|
||||
.layui-icon-upload-drag:before {
|
||||
content: '\e681';
|
||||
}
|
||||
|
||||
.layui-icon-user:before {
|
||||
content: '\e770';
|
||||
}
|
||||
|
||||
.layui-icon-file-b:before {
|
||||
content: '\e655';
|
||||
}
|
||||
|
||||
.layui-icon-component:before {
|
||||
content: '\e857';
|
||||
}
|
||||
|
||||
.layui-icon-find-fill:before {
|
||||
content: '\e670';
|
||||
}
|
||||
|
||||
.layui-icon-loading:before {
|
||||
content: '\e63d';
|
||||
}
|
||||
|
||||
.layui-icon-loading-1:before {
|
||||
content: '\e63e';
|
||||
}
|
||||
|
||||
.layui-icon-add-1:before {
|
||||
content: '\e654';
|
||||
}
|
||||
|
||||
.layui-icon-pause:before {
|
||||
content: '\e651';
|
||||
}
|
||||
|
||||
.layui-icon-play:before {
|
||||
content: '\e652';
|
||||
}
|
||||
|
||||
.layui-icon-video:before {
|
||||
content: '\e6ed';
|
||||
}
|
||||
|
||||
.layui-icon-headset:before {
|
||||
content: '\e6fc';
|
||||
}
|
||||
|
||||
.layui-icon-voice:before {
|
||||
content: '\e688';
|
||||
}
|
||||
|
||||
.layui-icon-speaker:before {
|
||||
content: '\e645';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-del:before {
|
||||
content: '\e64f';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-html:before {
|
||||
content: '\e64b';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-code:before {
|
||||
content: '\e64e';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-strong:before {
|
||||
content: '\e62b';
|
||||
}
|
||||
|
||||
.layui-icon-unlink:before {
|
||||
content: '\e64d';
|
||||
}
|
||||
|
||||
.layui-icon-picture:before {
|
||||
content: '\e64a';
|
||||
}
|
||||
|
||||
.layui-icon-link:before {
|
||||
content: '\e64c';
|
||||
}
|
||||
|
||||
.layui-icon-face-smile-b:before {
|
||||
content: '\e650';
|
||||
}
|
||||
|
||||
.layui-icon-align-center:before {
|
||||
content: '\e647';
|
||||
}
|
||||
|
||||
.layui-icon-align-right:before {
|
||||
content: '\e648';
|
||||
}
|
||||
|
||||
.layui-icon-align-left:before {
|
||||
content: '\e649';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-u:before {
|
||||
content: '\e646';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-i:before {
|
||||
content: '\e644';
|
||||
}
|
||||
|
||||
.layui-icon-tabs:before {
|
||||
content: '\e62a';
|
||||
}
|
||||
|
||||
.layui-icon-circle:before {
|
||||
content: '\e63f';
|
||||
}
|
||||
|
||||
.layui-icon-radio:before {
|
||||
content: '\e643';
|
||||
}
|
||||
|
||||
.layui-icon-share:before {
|
||||
content: '\e641';
|
||||
}
|
||||
|
||||
.layui-icon-edit:before {
|
||||
content: '\e642';
|
||||
}
|
||||
|
||||
.layui-icon-delete:before {
|
||||
content: '\e640';
|
||||
}
|
||||
|
||||
.layui-icon-engine:before {
|
||||
content: '\e628';
|
||||
}
|
||||
|
||||
.layui-icon-chart-screen:before {
|
||||
content: '\e629';
|
||||
}
|
||||
|
||||
.layui-icon-chart:before {
|
||||
content: '\e62c';
|
||||
}
|
||||
|
||||
.layui-icon-table:before {
|
||||
content: '\e62d';
|
||||
}
|
||||
|
||||
.layui-icon-tree:before {
|
||||
content: '\e62e';
|
||||
}
|
||||
|
||||
.layui-icon-upload-circle:before {
|
||||
content: '\e62f';
|
||||
}
|
||||
|
||||
.layui-icon-templeate-1:before {
|
||||
content: '\e630';
|
||||
}
|
||||
|
||||
.layui-icon-util:before {
|
||||
content: '\e631';
|
||||
}
|
||||
|
||||
.layui-icon-layouts:before {
|
||||
content: '\e632';
|
||||
}
|
||||
|
||||
.layui-icon-prev-circle:before {
|
||||
content: '\e633';
|
||||
}
|
||||
|
||||
.layui-icon-carousel:before {
|
||||
content: '\e634';
|
||||
}
|
||||
|
||||
.layui-icon-code-circle:before {
|
||||
content: '\e635';
|
||||
}
|
||||
|
||||
.layui-icon-water:before {
|
||||
content: '\e636';
|
||||
}
|
||||
|
||||
.layui-icon-date:before {
|
||||
content: '\e637';
|
||||
}
|
||||
|
||||
.layui-icon-layer:before {
|
||||
content: '\e638';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-clear:before {
|
||||
content: '\e639';
|
||||
}
|
||||
|
||||
.layui-icon-dialogue:before {
|
||||
content: '\e63a';
|
||||
}
|
||||
|
||||
.layui-icon-cellphone-fine:before {
|
||||
content: '\e63b';
|
||||
}
|
||||
|
||||
.layui-icon-form:before {
|
||||
content: '\e63c';
|
||||
}
|
||||
|
||||
.layui-icon-file:before {
|
||||
content: '\e621';
|
||||
}
|
||||
|
||||
.layui-icon-triangle-r:before {
|
||||
content: '\e623';
|
||||
}
|
||||
|
||||
.layui-icon-triangle-d:before {
|
||||
content: '\e625';
|
||||
}
|
||||
|
||||
.layui-icon-set-sm:before {
|
||||
content: '\e620';
|
||||
}
|
||||
|
||||
.layui-icon-add-circle:before {
|
||||
content: '\e61f';
|
||||
}
|
||||
|
||||
.layui-icon-layim-download:before {
|
||||
content: '\e61e';
|
||||
}
|
||||
|
||||
.layui-icon-layim-uploadfile:before {
|
||||
content: '\e61d';
|
||||
}
|
||||
|
||||
.layui-icon-404:before {
|
||||
content: '\e61c';
|
||||
}
|
||||
|
||||
.layui-icon-about:before {
|
||||
content: '\e60b';
|
||||
}
|
||||
|
||||
.layui-icon-layim-theme:before {
|
||||
content: '\e61b';
|
||||
}
|
||||
|
||||
.layui-icon-down:before {
|
||||
content: '\e61a';
|
||||
}
|
||||
|
||||
.layui-icon-up:before {
|
||||
content: '\e619';
|
||||
}
|
||||
|
||||
.layui-icon-circle-dot:before {
|
||||
content: '\e617';
|
||||
}
|
||||
|
||||
.layui-icon-set-fill:before {
|
||||
content: '\e614';
|
||||
}
|
||||
|
||||
.layui-icon-search:before {
|
||||
content: '\e615';
|
||||
}
|
||||
|
||||
.layui-icon-friends:before {
|
||||
content: '\e612';
|
||||
}
|
||||
|
||||
.layui-icon-group:before {
|
||||
content: '\e613';
|
||||
}
|
||||
|
||||
.layui-icon-reply-fill:before {
|
||||
content: '\e611';
|
||||
}
|
||||
|
||||
.layui-icon-menu-fill:before {
|
||||
content: '\e60f';
|
||||
}
|
||||
|
||||
.layui-icon-face-smile-fine:before {
|
||||
content: '\e60c';
|
||||
}
|
||||
|
||||
.layui-icon-picture-fine:before {
|
||||
content: '\e60d';
|
||||
}
|
||||
|
||||
.layui-icon-log:before {
|
||||
content: '\e60e';
|
||||
}
|
||||
|
||||
.layui-icon-list:before {
|
||||
content: '\e60a';
|
||||
}
|
||||
|
||||
.layui-icon-release:before {
|
||||
content: '\e609';
|
||||
}
|
||||
|
||||
.layui-icon-add-circle-fine:before {
|
||||
content: '\e608';
|
||||
}
|
||||
|
||||
.layui-icon-ok:before {
|
||||
content: '\e605';
|
||||
}
|
||||
|
||||
.layui-icon-help:before {
|
||||
content: '\e607';
|
||||
}
|
||||
|
||||
.layui-icon-chat:before {
|
||||
content: '\e606';
|
||||
}
|
||||
|
||||
.layui-icon-top:before {
|
||||
content: '\e604';
|
||||
}
|
||||
|
||||
.layui-icon-right:before {
|
||||
content: '\e602';
|
||||
}
|
||||
|
||||
.layui-icon-left:before {
|
||||
content: '\e603';
|
||||
}
|
||||
|
||||
.layui-icon-star:before {
|
||||
content: '\e600';
|
||||
}
|
||||
|
||||
.layui-icon-download-circle:before {
|
||||
content: '\e601';
|
||||
}
|
||||
|
||||
.layui-icon-close:before {
|
||||
content: '\1006';
|
||||
}
|
||||
|
||||
.layui-icon-close-fill:before {
|
||||
content: '\1007';
|
||||
}
|
||||
|
||||
.layui-icon-ok-circle:before {
|
||||
content: '\1005';
|
||||
}
|
||||
|
||||
.layui-main {
|
||||
width: 1140px;
|
||||
margin: 0 auto;
|
||||
@ -5148,49 +4396,6 @@ body .layui-util-face .layui-layer-content {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.layui-avatar {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #000000d9;
|
||||
font-size: 14px;
|
||||
font-variant: tabular-nums;
|
||||
line-height: 1.5715;
|
||||
list-style: none;
|
||||
font-feature-settings: tnum;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
color: #fff;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
background: #ccc;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-radius {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-sm {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-lg {
|
||||
height: 36px;
|
||||
width: 36px;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-xs {
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
.layui-anim {
|
||||
-webkit-animation-duration: 0.3s;
|
||||
-webkit-animation-fill-mode: both;
|
||||
|
753
src/font/iconfont.less
Normal file
753
src/font/iconfont.less
Normal file
@ -0,0 +1,753 @@
|
||||
@font-face {
|
||||
font-family: layui-icon;
|
||||
src: url(./iconfont.eot?t=270);
|
||||
src: url(./iconfont.eot?t=270#iefix) format('embedded-opentype'),
|
||||
url(./iconfont.woff2?t=270) format('woff2'),
|
||||
url(./iconfont.woff?t=270) format('woff'),
|
||||
url(./iconfont.ttf?t=270) format('truetype'),
|
||||
url(./iconfont.svg?t=270#layui-icon) format('svg');
|
||||
}
|
||||
|
||||
.layui-icon {
|
||||
font-family: layui-icon !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.layui-icon-eye:before {
|
||||
content: '\e695';
|
||||
}
|
||||
|
||||
.layui-icon-eye-invisible:before {
|
||||
content: '\e696';
|
||||
}
|
||||
|
||||
.layui-icon-backspace:before {
|
||||
content: '\e694';
|
||||
}
|
||||
|
||||
.layui-icon-help-circle:before {
|
||||
content: '\e77c';
|
||||
}
|
||||
|
||||
.layui-icon-tips-fill:before {
|
||||
content: '\eb2e';
|
||||
}
|
||||
|
||||
.layui-icon-test:before {
|
||||
content: '\e692';
|
||||
}
|
||||
|
||||
.layui-icon-clear:before {
|
||||
content: '\e788';
|
||||
}
|
||||
|
||||
.layui-icon-keyboard:before {
|
||||
content: '\e693';
|
||||
}
|
||||
|
||||
.layui-icon-heart-fill:before {
|
||||
content: '\e68f';
|
||||
}
|
||||
|
||||
.layui-icon-light:before {
|
||||
content: '\e748';
|
||||
}
|
||||
|
||||
.layui-icon-music:before {
|
||||
content: '\e690';
|
||||
}
|
||||
|
||||
.layui-icon-time:before {
|
||||
content: '\e68d';
|
||||
}
|
||||
|
||||
.layui-icon-ie:before {
|
||||
content: '\e7bb';
|
||||
}
|
||||
|
||||
.layui-icon-firefox:before {
|
||||
content: '\e686';
|
||||
}
|
||||
|
||||
.layui-icon-at:before {
|
||||
content: '\e687';
|
||||
}
|
||||
|
||||
.layui-icon-bluetooth:before {
|
||||
content: '\e689';
|
||||
}
|
||||
|
||||
.layui-icon-chrome:before {
|
||||
content: '\e68a';
|
||||
}
|
||||
|
||||
.layui-icon-edge:before {
|
||||
content: '\e68b';
|
||||
}
|
||||
|
||||
.layui-icon-heart:before {
|
||||
content: '\e68c';
|
||||
}
|
||||
|
||||
.layui-icon-key:before {
|
||||
content: '\e683';
|
||||
}
|
||||
|
||||
.layui-icon-android:before {
|
||||
content: '\e684';
|
||||
}
|
||||
|
||||
.layui-icon-mike:before {
|
||||
content: '\e6dc';
|
||||
}
|
||||
|
||||
.layui-icon-mute:before {
|
||||
content: '\e685';
|
||||
}
|
||||
|
||||
.layui-icon-gift:before {
|
||||
content: '\e627';
|
||||
}
|
||||
|
||||
.layui-icon-windows:before {
|
||||
content: '\e67f';
|
||||
}
|
||||
|
||||
.layui-icon-ios:before {
|
||||
content: '\e680';
|
||||
}
|
||||
|
||||
.layui-icon-logout:before {
|
||||
content: '\e682';
|
||||
}
|
||||
|
||||
.layui-icon-wifi:before {
|
||||
content: '\e7e0';
|
||||
}
|
||||
|
||||
.layui-icon-rss:before {
|
||||
content: '\e808';
|
||||
}
|
||||
|
||||
.layui-icon-email:before {
|
||||
content: '\e618';
|
||||
}
|
||||
|
||||
.layui-icon-reduce-circle:before {
|
||||
content: '\e616';
|
||||
}
|
||||
|
||||
.layui-icon-transfer:before {
|
||||
content: '\e691';
|
||||
}
|
||||
|
||||
.layui-icon-service:before {
|
||||
content: '\e626';
|
||||
}
|
||||
|
||||
.layui-icon-addition:before {
|
||||
content: '\e624';
|
||||
}
|
||||
|
||||
.layui-icon-subtraction:before {
|
||||
content: '\e67e';
|
||||
}
|
||||
|
||||
.layui-icon-slider:before {
|
||||
content: '\e714';
|
||||
}
|
||||
|
||||
.layui-icon-print:before {
|
||||
content: '\e66d';
|
||||
}
|
||||
|
||||
.layui-icon-export:before {
|
||||
content: '\e67d';
|
||||
}
|
||||
|
||||
.layui-icon-cols:before {
|
||||
content: '\e610';
|
||||
}
|
||||
|
||||
.layui-icon-screen-full:before {
|
||||
content: '\e622';
|
||||
}
|
||||
|
||||
.layui-icon-screen-restore:before {
|
||||
content: '\e758';
|
||||
}
|
||||
|
||||
.layui-icon-rate-half:before {
|
||||
content: '\e6c9';
|
||||
}
|
||||
|
||||
.layui-icon-rate-solid:before {
|
||||
content: '\e67a';
|
||||
}
|
||||
|
||||
.layui-icon-rate:before {
|
||||
content: '\e67b';
|
||||
}
|
||||
|
||||
.layui-icon-cellphone:before {
|
||||
content: '\e678';
|
||||
}
|
||||
|
||||
.layui-icon-vercode:before {
|
||||
content: '\e679';
|
||||
}
|
||||
|
||||
.layui-icon-login-weibo:before {
|
||||
content: '\e675';
|
||||
}
|
||||
|
||||
.layui-icon-login-qq:before {
|
||||
content: '\e676';
|
||||
}
|
||||
|
||||
.layui-icon-login-wechat:before {
|
||||
content: '\e677';
|
||||
}
|
||||
|
||||
.layui-icon-username:before {
|
||||
content: '\e66f';
|
||||
}
|
||||
|
||||
.layui-icon-password:before {
|
||||
content: '\e673';
|
||||
}
|
||||
|
||||
.layui-icon-refresh-3:before {
|
||||
content: '\e9aa';
|
||||
}
|
||||
|
||||
.layui-icon-auz:before {
|
||||
content: '\e672';
|
||||
}
|
||||
|
||||
.layui-icon-shrink-right:before {
|
||||
content: '\e668';
|
||||
}
|
||||
|
||||
.layui-icon-spread-left:before {
|
||||
content: '\e66b';
|
||||
}
|
||||
|
||||
.layui-icon-snowflake:before {
|
||||
content: '\e6b1';
|
||||
}
|
||||
|
||||
.layui-icon-tips:before {
|
||||
content: '\e702';
|
||||
}
|
||||
|
||||
.layui-icon-note:before {
|
||||
content: '\e66e';
|
||||
}
|
||||
|
||||
.layui-icon-senior:before {
|
||||
content: '\e674';
|
||||
}
|
||||
|
||||
.layui-icon-refresh-1:before {
|
||||
content: '\e666';
|
||||
}
|
||||
|
||||
.layui-icon-refresh:before {
|
||||
content: '\e669';
|
||||
}
|
||||
|
||||
.layui-icon-flag:before {
|
||||
content: '\e66c';
|
||||
}
|
||||
|
||||
.layui-icon-theme:before {
|
||||
content: '\e66a';
|
||||
}
|
||||
|
||||
.layui-icon-notice:before {
|
||||
content: '\e667';
|
||||
}
|
||||
|
||||
.layui-icon-console:before {
|
||||
content: '\e665';
|
||||
}
|
||||
|
||||
.layui-icon-website:before {
|
||||
content: '\e7ae';
|
||||
}
|
||||
|
||||
.layui-icon-face-surprised:before {
|
||||
content: '\e664';
|
||||
}
|
||||
|
||||
.layui-icon-set:before {
|
||||
content: '\e716';
|
||||
}
|
||||
|
||||
.layui-icon-template:before {
|
||||
content: '\e663';
|
||||
}
|
||||
|
||||
.layui-icon-app:before {
|
||||
content: '\e653';
|
||||
}
|
||||
|
||||
.layui-icon-template-1:before {
|
||||
content: '\e656';
|
||||
}
|
||||
|
||||
.layui-icon-home:before {
|
||||
content: '\e68e';
|
||||
}
|
||||
|
||||
.layui-icon-female:before {
|
||||
content: '\e661';
|
||||
}
|
||||
|
||||
.layui-icon-male:before {
|
||||
content: '\e662';
|
||||
}
|
||||
|
||||
.layui-icon-tread:before {
|
||||
content: '\e6c5';
|
||||
}
|
||||
|
||||
.layui-icon-praise:before {
|
||||
content: '\e6c6';
|
||||
}
|
||||
|
||||
.layui-icon-rmb:before {
|
||||
content: '\e65e';
|
||||
}
|
||||
|
||||
.layui-icon-more:before {
|
||||
content: '\e65f';
|
||||
}
|
||||
|
||||
.layui-icon-camera:before {
|
||||
content: '\e660';
|
||||
}
|
||||
|
||||
.layui-icon-cart-simple:before {
|
||||
content: '\e698';
|
||||
}
|
||||
|
||||
.layui-icon-face-cry:before {
|
||||
content: '\e69c';
|
||||
}
|
||||
|
||||
.layui-icon-face-smile:before {
|
||||
content: '\e6af';
|
||||
}
|
||||
|
||||
.layui-icon-survey:before {
|
||||
content: '\e6b2';
|
||||
}
|
||||
|
||||
.layui-icon-read:before {
|
||||
content: '\e705';
|
||||
}
|
||||
|
||||
.layui-icon-location:before {
|
||||
content: '\e715';
|
||||
}
|
||||
|
||||
.layui-icon-dollar:before {
|
||||
content: '\e659';
|
||||
}
|
||||
|
||||
.layui-icon-diamond:before {
|
||||
content: '\e735';
|
||||
}
|
||||
|
||||
.layui-icon-return:before {
|
||||
content: '\e65c';
|
||||
}
|
||||
|
||||
.layui-icon-camera-fill:before {
|
||||
content: '\e65d';
|
||||
}
|
||||
|
||||
.layui-icon-fire:before {
|
||||
content: '\e756';
|
||||
}
|
||||
|
||||
.layui-icon-more-vertical:before {
|
||||
content: '\e671';
|
||||
}
|
||||
|
||||
.layui-icon-cart:before {
|
||||
content: '\e657';
|
||||
}
|
||||
|
||||
.layui-icon-star-fill:before {
|
||||
content: '\e658';
|
||||
}
|
||||
|
||||
.layui-icon-prev:before {
|
||||
content: '\e65a';
|
||||
}
|
||||
|
||||
.layui-icon-next:before {
|
||||
content: '\e65b';
|
||||
}
|
||||
|
||||
.layui-icon-upload:before {
|
||||
content: '\e67c';
|
||||
}
|
||||
|
||||
.layui-icon-upload-drag:before {
|
||||
content: '\e681';
|
||||
}
|
||||
|
||||
.layui-icon-user:before {
|
||||
content: '\e770';
|
||||
}
|
||||
|
||||
.layui-icon-file-b:before {
|
||||
content: '\e655';
|
||||
}
|
||||
|
||||
.layui-icon-component:before {
|
||||
content: '\e857';
|
||||
}
|
||||
|
||||
.layui-icon-find-fill:before {
|
||||
content: '\e670';
|
||||
}
|
||||
|
||||
.layui-icon-loading:before {
|
||||
content: '\e63d';
|
||||
}
|
||||
|
||||
.layui-icon-loading-1:before {
|
||||
content: '\e63e';
|
||||
}
|
||||
|
||||
.layui-icon-add-1:before {
|
||||
content: '\e654';
|
||||
}
|
||||
|
||||
.layui-icon-pause:before {
|
||||
content: '\e651';
|
||||
}
|
||||
|
||||
.layui-icon-play:before {
|
||||
content: '\e652';
|
||||
}
|
||||
|
||||
.layui-icon-video:before {
|
||||
content: '\e6ed';
|
||||
}
|
||||
|
||||
.layui-icon-headset:before {
|
||||
content: '\e6fc';
|
||||
}
|
||||
|
||||
.layui-icon-voice:before {
|
||||
content: '\e688';
|
||||
}
|
||||
|
||||
.layui-icon-speaker:before {
|
||||
content: '\e645';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-del:before {
|
||||
content: '\e64f';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-html:before {
|
||||
content: '\e64b';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-code:before {
|
||||
content: '\e64e';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-strong:before {
|
||||
content: '\e62b';
|
||||
}
|
||||
|
||||
.layui-icon-unlink:before {
|
||||
content: '\e64d';
|
||||
}
|
||||
|
||||
.layui-icon-picture:before {
|
||||
content: '\e64a';
|
||||
}
|
||||
|
||||
.layui-icon-link:before {
|
||||
content: '\e64c';
|
||||
}
|
||||
|
||||
.layui-icon-face-smile-b:before {
|
||||
content: '\e650';
|
||||
}
|
||||
|
||||
.layui-icon-align-center:before {
|
||||
content: '\e647';
|
||||
}
|
||||
|
||||
.layui-icon-align-right:before {
|
||||
content: '\e648';
|
||||
}
|
||||
|
||||
.layui-icon-align-left:before {
|
||||
content: '\e649';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-u:before {
|
||||
content: '\e646';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-i:before {
|
||||
content: '\e644';
|
||||
}
|
||||
|
||||
.layui-icon-tabs:before {
|
||||
content: '\e62a';
|
||||
}
|
||||
|
||||
.layui-icon-circle:before {
|
||||
content: '\e63f';
|
||||
}
|
||||
|
||||
.layui-icon-radio:before {
|
||||
content: '\e643';
|
||||
}
|
||||
|
||||
.layui-icon-share:before {
|
||||
content: '\e641';
|
||||
}
|
||||
|
||||
.layui-icon-edit:before {
|
||||
content: '\e642';
|
||||
}
|
||||
|
||||
.layui-icon-delete:before {
|
||||
content: '\e640';
|
||||
}
|
||||
|
||||
.layui-icon-engine:before {
|
||||
content: '\e628';
|
||||
}
|
||||
|
||||
.layui-icon-chart-screen:before {
|
||||
content: '\e629';
|
||||
}
|
||||
|
||||
.layui-icon-chart:before {
|
||||
content: '\e62c';
|
||||
}
|
||||
|
||||
.layui-icon-table:before {
|
||||
content: '\e62d';
|
||||
}
|
||||
|
||||
.layui-icon-tree:before {
|
||||
content: '\e62e';
|
||||
}
|
||||
|
||||
.layui-icon-upload-circle:before {
|
||||
content: '\e62f';
|
||||
}
|
||||
|
||||
.layui-icon-templeate-1:before {
|
||||
content: '\e630';
|
||||
}
|
||||
|
||||
.layui-icon-util:before {
|
||||
content: '\e631';
|
||||
}
|
||||
|
||||
.layui-icon-layouts:before {
|
||||
content: '\e632';
|
||||
}
|
||||
|
||||
.layui-icon-prev-circle:before {
|
||||
content: '\e633';
|
||||
}
|
||||
|
||||
.layui-icon-carousel:before {
|
||||
content: '\e634';
|
||||
}
|
||||
|
||||
.layui-icon-code-circle:before {
|
||||
content: '\e635';
|
||||
}
|
||||
|
||||
.layui-icon-water:before {
|
||||
content: '\e636';
|
||||
}
|
||||
|
||||
.layui-icon-date:before {
|
||||
content: '\e637';
|
||||
}
|
||||
|
||||
.layui-icon-layer:before {
|
||||
content: '\e638';
|
||||
}
|
||||
|
||||
.layui-icon-fonts-clear:before {
|
||||
content: '\e639';
|
||||
}
|
||||
|
||||
.layui-icon-dialogue:before {
|
||||
content: '\e63a';
|
||||
}
|
||||
|
||||
.layui-icon-cellphone-fine:before {
|
||||
content: '\e63b';
|
||||
}
|
||||
|
||||
.layui-icon-form:before {
|
||||
content: '\e63c';
|
||||
}
|
||||
|
||||
.layui-icon-file:before {
|
||||
content: '\e621';
|
||||
}
|
||||
|
||||
.layui-icon-triangle-r:before {
|
||||
content: '\e623';
|
||||
}
|
||||
|
||||
.layui-icon-triangle-d:before {
|
||||
content: '\e625';
|
||||
}
|
||||
|
||||
.layui-icon-set-sm:before {
|
||||
content: '\e620';
|
||||
}
|
||||
|
||||
.layui-icon-add-circle:before {
|
||||
content: '\e61f';
|
||||
}
|
||||
|
||||
.layui-icon-layim-download:before {
|
||||
content: '\e61e';
|
||||
}
|
||||
|
||||
.layui-icon-layim-uploadfile:before {
|
||||
content: '\e61d';
|
||||
}
|
||||
|
||||
.layui-icon-404:before {
|
||||
content: '\e61c';
|
||||
}
|
||||
|
||||
.layui-icon-about:before {
|
||||
content: '\e60b';
|
||||
}
|
||||
|
||||
.layui-icon-layim-theme:before {
|
||||
content: '\e61b';
|
||||
}
|
||||
|
||||
.layui-icon-down:before {
|
||||
content: '\e61a';
|
||||
}
|
||||
|
||||
.layui-icon-up:before {
|
||||
content: '\e619';
|
||||
}
|
||||
|
||||
.layui-icon-circle-dot:before {
|
||||
content: '\e617';
|
||||
}
|
||||
|
||||
.layui-icon-set-fill:before {
|
||||
content: '\e614';
|
||||
}
|
||||
|
||||
.layui-icon-search:before {
|
||||
content: '\e615';
|
||||
}
|
||||
|
||||
.layui-icon-friends:before {
|
||||
content: '\e612';
|
||||
}
|
||||
|
||||
.layui-icon-group:before {
|
||||
content: '\e613';
|
||||
}
|
||||
|
||||
.layui-icon-reply-fill:before {
|
||||
content: '\e611';
|
||||
}
|
||||
|
||||
.layui-icon-menu-fill:before {
|
||||
content: '\e60f';
|
||||
}
|
||||
|
||||
.layui-icon-face-smile-fine:before {
|
||||
content: '\e60c';
|
||||
}
|
||||
|
||||
.layui-icon-picture-fine:before {
|
||||
content: '\e60d';
|
||||
}
|
||||
|
||||
.layui-icon-log:before {
|
||||
content: '\e60e';
|
||||
}
|
||||
|
||||
.layui-icon-list:before {
|
||||
content: '\e60a';
|
||||
}
|
||||
|
||||
.layui-icon-release:before {
|
||||
content: '\e609';
|
||||
}
|
||||
|
||||
.layui-icon-add-circle-fine:before {
|
||||
content: '\e608';
|
||||
}
|
||||
|
||||
.layui-icon-ok:before {
|
||||
content: '\e605';
|
||||
}
|
||||
|
||||
.layui-icon-help:before {
|
||||
content: '\e607';
|
||||
}
|
||||
|
||||
.layui-icon-chat:before {
|
||||
content: '\e606';
|
||||
}
|
||||
|
||||
.layui-icon-top:before {
|
||||
content: '\e604';
|
||||
}
|
||||
|
||||
.layui-icon-right:before {
|
||||
content: '\e602';
|
||||
}
|
||||
|
||||
.layui-icon-left:before {
|
||||
content: '\e603';
|
||||
}
|
||||
|
||||
.layui-icon-star:before {
|
||||
content: '\e600';
|
||||
}
|
||||
|
||||
.layui-icon-download-circle:before {
|
||||
content: '\e601';
|
||||
}
|
||||
|
||||
.layui-icon-close:before {
|
||||
content: '\1006';
|
||||
}
|
||||
|
||||
.layui-icon-close-fill:before {
|
||||
content: '\1007';
|
||||
}
|
||||
|
||||
.layui-icon-ok-circle:before {
|
||||
content: '\1005';
|
||||
}
|
42
src/module/avatar/index.less
Normal file
42
src/module/avatar/index.less
Normal file
@ -0,0 +1,42 @@
|
||||
.layui-avatar {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #000000d9;
|
||||
font-size: 14px;
|
||||
font-variant: tabular-nums;
|
||||
line-height: 1.5715;
|
||||
list-style: none;
|
||||
font-feature-settings: tnum;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
color: #fff;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
background: #ccc;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-radius {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-sm {
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-lg {
|
||||
height: 36px;
|
||||
width: 36px;
|
||||
}
|
||||
|
||||
.layui-avatar.layui-avatar-xs {
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
}
|
@ -1,3 +1,20 @@
|
||||
<script lang="ts">
|
||||
export default {
|
||||
name: "LayAvatar"
|
||||
}
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineProps } from 'vue'
|
||||
import "./index.less"
|
||||
|
||||
const props = defineProps<{
|
||||
src?: String
|
||||
radius?: boolean
|
||||
size?: string
|
||||
}>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<img
|
||||
:src="src"
|
||||
@ -8,13 +25,3 @@
|
||||
]"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup name="LayAvatar" lang="ts">
|
||||
import { defineProps } from 'vue'
|
||||
|
||||
const props = defineProps<{
|
||||
src?: String
|
||||
radius?: boolean
|
||||
size?: string
|
||||
}>()
|
||||
</script>
|
||||
|
@ -61,11 +61,12 @@ const props = withDefaults(defineProps<LayLayerProps>(), {
|
||||
isOutAnim: true
|
||||
});
|
||||
|
||||
const top = ref(props.offset[0]);
|
||||
const left = ref(props.offset[1]);
|
||||
const top = ref(props.offset[0].indexOf('%') != -1 ? "calc(" + props.offset[0] + " - (" + props.height + "/2 ))" : props.offset[0]);
|
||||
const left = ref(props.offset[1].indexOf('%') != -1 ? "calc(" + props.offset[1] + " - (" + props.width + "/2 ))" : props.offset[1]);
|
||||
const width = ref(props.width);
|
||||
const height = ref(props.height);
|
||||
const max = ref(false);
|
||||
|
||||
const contentHeight = ref(
|
||||
props.btn.length > 0
|
||||
? "calc(" + height.value + " - 100px)"
|
||||
@ -112,13 +113,19 @@ const minHandle = function () {
|
||||
emit("update:visible", false);
|
||||
};
|
||||
|
||||
const maxBeforeTop = ref()
|
||||
const maxBeforeLeft = ref()
|
||||
|
||||
const maxHandle = function () {
|
||||
if (max.value) {
|
||||
width.value = props.width;
|
||||
height.value = props.height;
|
||||
top.value = props.offset[0];
|
||||
left.value = props.offset[1];
|
||||
top.value = maxBeforeTop.value;
|
||||
left.value = maxBeforeLeft.value;
|
||||
} else {
|
||||
let dom = document.getElementById(props.id);
|
||||
maxBeforeTop.value = dom?.style.top
|
||||
maxBeforeLeft.value = dom?.style.left
|
||||
width.value = "100%";
|
||||
height.value = "100%";
|
||||
top.value = "0px";
|
||||
|
Loading…
Reference in New Issue
Block a user