首页 > 其他分享 >解决 Blazor 中因标签换行导致的行内元素空隙问题

解决 Blazor 中因标签换行导致的行内元素空隙问题

时间:2023-08-07 23:48:01浏览次数:32  
标签:中因 换行 元素 color 空隙 background Blazor badge

实践过不同前端框架的朋友应该都知道,对于同一个样式,在不同框架上的表现都会有不同,时时需要做“适配”,在 Blazor 上也不例外。在做 Ant Design Blazor 时就深有体会,因为我们是同步官方的样式,他们的样式只考虑了React 上的实现,除非有人专门提 PR,否则都不会特别考虑其他框架的实现。本文就介绍一个典型问题。

当我们使用 Razor 模板时,特别是使用 if for 等语句块时,都会导致 HTML 元素或者组件换行。而运行后输出的 HTML 也会换行,而浏览器对于HTML换行会转换成空格,空格又由于默认或继承的字体大小,让元素之间出现空隙。这对于本来就要换行的块状元素没什么问题,但对于想要在一行显示的行内元素,就会有一个空隙。下面是一个例子:

<div class="badge">
    <span>1</span>
    <span>2</span>
    <span>2</span>
</div>

<style>
    .badge {
        background-color: red;
        font-size: 32px;
    }

        .badge span {
            background-color: green;
        }
</style>

结果可以看出,数字之间和数字周围都有空隙:

有空隙

而我们看下不换行是怎样的:

<div class="badge"><span>1</span><span>2</span><span>2</span></div>

<style>
    .badge {
        background-color: red;
        font-size: 32px;
    }

        .badge span {
            background-color: green;
        }
</style>

数字之间没有空隙

可以看到数字之间没有空隙。那么,怎么解决呢?

其实这属于 css 的一个常见问题,解决方法也通用的,就是想办法使那些从换行转换的空格的字号变为 0,使空隙消失,并恢复子元素的字号:

<div class="badge">
    <span>1</span>
    <span>2</span>
    <span>2</span>
</div>

<style>
    .badge {
        background-color: red;
        font-size: 0;
    }

        .badge span {
            background-color: green;
            font-size: 32px;
        }
</style>

结果:

空隙消除

标签:中因,换行,元素,color,空隙,background,Blazor,badge
From: https://www.cnblogs.com/ElderJames/p/resolves-width-issues-in-blazor-caused-by-element-wra

相关文章

  • 解决 Blazor 中因标签换行导致的行内元素空隙问题
    实践过不同前端框架的朋友应该都知道,对于同一个样式,在不同框架上的表现都会有不同,时时需要做“适配”,在Blazor上也不例外。在做AntDesignBlazor时就深有体会,因为我们是同步官方的样式,他们的样式只考虑了React上的实现,除非有人专门提PR,否则都不会特别考虑其他框架的实现。......
  • 解决 Blazor 中因标签换行导致的行内元素空隙问题
    实践过不同前端框架的朋友应该都知道,对于同一个样式,在不同框架上的表现都会有不同,时时需要做“适配”,在Blazor上也不例外。在做AntDesignBlazor时就深有体会,因为我们是同步官方的样式,他们的样式只考虑了React上的实现,除非有人专门提PR,否则都不会特别考虑其他框架的实现。......
  • Linux与Windows文件换行符差异
    当一个文件在Windows和Linux上交替操作后,经常遇到一些莫名其妙的问题,如shell脚本无法执行,找不到shell脚本等问题,本文谨就这一问题做一总结,供各位参考;格式差异换行符是行尾(EOL),是一个特殊的字符或字符序列,表示一行文本的结尾和新行的开头;表示换行符的实际代码因操作系统而异......
  • Apache HTTPD换行解析漏洞(CVE-2017-15715)
    ApacheHTTPD换行解析漏洞(CVE-2017-15715)【项目中遇到】ApacheHTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页,其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将按照PHP后缀进行解析,导致绕过一些服务器安全策略。1.环境搭建cdhttpd/CVE-2017-15715/doc......
  • BootstrapBlazor调用浏览器全局事件
    BootstrapBlazor组件库调用浏览器全局事件有时候blazor开发的时候可能会使用一些浏览器的全局事件,但是blazor默认没有提供相关的方法去调用,只能通过js。BootstrapBlazor组件库为我们提供了封装好的方法可以很方便的去调用。[Inject][NotNull]privateIJSRuntimeEventHandler?......
  • BootstrapBlazor组件库更优雅的调用js方法
    BootstrapBlazor组件库更优雅的调用js方法在blazor开发中,有时候需要去调用js代码来处理一些逻辑。使用BootstrapBlazor组件库自带的JSModuleAutoLoader特性可以帮助我们更加方便、简洁的去调用js下面我们用Live2DDisplay这个组件为例我们首先在razor文件中继承接口@inheritsB......
  • 让 vscode 和 idea 一样注释后自动换行
    安装IDEAKeyBinding插件后发现无法和IDEA一般注释后换行,经过一番查询,如下解决:https://github.com/kasecato/vscode-intellij-idea-keybindings/issues/233#issuecomment-1491495313Ctrl+Shift+A搜索OpenKeyboardShutcuts(JSON),将以下代码加到末尾,注意JSON语法。{......
  • BootstrapBlazor组件库,Menu组件NavLinkMatch导致的多个菜单项被被同时选中
    BootstrapBlazor组件库,Menu组件NavLinkMatch导致的多个菜单项被被同时选中BootstrapBlazor版本更新到7.9.0后,Menu组件出现首页同时被选中的情况默认首页/路径是选中状态,但是当选中其他路径后,首页路径还是选中状态。这是因为在BootstrapBlazor组件最新版中支持了一个新特性。可......
  • echo命令、read命令不换行用户输入
    一、echo输出提示#!/bin/bashecho"请输入要选择的数字(1-9):"readnum效果:我们的想法是,光标停在:号后,等待用户输入,结果光标跑下一行了。解决方法:在:后加入\c去掉回车#!/bin/bashecho"请输入要选择的数字(1-9):\c"readnum效果:二、直接用read的参数设置......
  • blazor 输入字体颜色是黑色,,提示字体颜色不对
     下图是目标样式 样式修改都不起作用,后面百度发现是字段: -webkit-text-fill-color修改 这样就可以了,输入和提示字体颜色都是白色完成要求......