将SVG与文本内联对齐 [英] Aligning an SVG inline with text

查看:193
本文介绍了将SVG与文本内联对齐的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下 JSFiddle ,其中SVG放置在按钮左侧的某些文本的左侧。我希望SVG与文本内联,以便它垂直放置在按钮中。



我想过使用以下方法:




  • 使用 line-height 虽然看起来不起作用。

  • 设置 margin-top :但是按钮中的所有内容都会向下移动。



我可以如何将SVG与文本对齐?如果 vertical-align 不能提供足够细微的内容为您定位,然后您可以尝试使用 position:relative; 来调整图标的相对位置。

  .icon {
...
位置:相对;
top:0.15em;

$ / code>

如果您使用 em 值的位置,那么应该允许类为任何字体大小。



button {font-family:'Texta-Regular ', 无衬线字体; font-size:2.7em; line-height:1.2em;显示:块;保证金:2em汽车;填充:.3em 2em; text-align:center; border:none; border-radius:5px; -webkitborder-radius:5px;概要:无; background-color:#dd4b39;颜色:#fff; } .icon {width:1em;显示:内联; margin-right:40px;位置:相对;顶部:0.15em; }

< button> < svg version =1.1fill =#fffclass =iconxmlns =http://www.w3.org/2000/svgxmlns:xlink =http://www.w3.org / 1999 / xlinkx =0pxy =0pxviewBox =0 0 96.828 96.827xml:space =preserve> <路径d =M62.617,H39.525c-10.29,0-17.413,2.256-23.824,7.552c-5.042,4.35-8.051,10.672-8.051,16.912c0,9.614,7.33,19.831,20.913,19.831c1 .306,0,2.752-0.134,4.028-0.253l-0.188,0.457c-0.546,1.308-1.063,2.542-1.063,4.468c0,3.75,1.809,6.063,3.558,8.298l0.22,0.283l-0.391, 0.027c-5.609,0.384-16.049,1.1-23.675,5.787c-9.007,5.355-9.707,13.145-9.707,15.404c0,8.988,8.376,18.06,27.09,18.06c21.76,0,33.146-12.005,33.146- 23.863c0.002-8.771-5.141-13.101-10.6-17.698l-4.605-3.582c-1.423-1.179-3.195-2.646-3.195-5.364c0-2.672,1.772-4.436,3.336-5.992l0.163-0.165c4。 973-3.917,10.609-8.358,10.609-17.964c0-9.658-6.035-14.649-8.937-17.048h7.663c0.094,0,0.188-0.026,0.266-0.077l6.601-4.15c0.188-0.119,0.276- 0.348,0.214-0.562C63.037,0.147,62.839,0,62.617,0z M34.614,91.535c-13.264,0-22.176-6.195-22.176-15.416c0-6.021,3.645-10.396,10.824-12.997c5.749 -1.935,13.17-2.031,13.244-2.031c1.257,0,1.889,0,2.893,0.126c9.281,6.605,13.743,10.073,13.743,16.678C53.141,86.309,46.041,91.535,34.614,91.535z M34.489,40.756c-11.132,0-15 .752-14.633-15.752-22.468c0-3.984,0.906-7.042,2.77-9.351c2.023-2.531,5.487-4.166,8.825-4.166c10.221,0,15.873,13.738,15.873,23.233c0,1.498,0 ,6.055-3.148,9.22C40.94,39.337,37.497,40.756,34.489,40.756z/> <路径d =M94.982,45.223H82.814V33.098c0-0.276-0.225-0.5-0.5-0.5H77.08c-0.276,0-0.5,0.224-0.5,0.5v12.125H64.473c-0.276,0 -0.5,0.224-0.5,0.5v5.304c0,0.275,0.224,0.5,0.5,0.5H76.58V63.73c0,0.275,0.224,0.5,0.5,0.5h5.234c0.275,0,0.5-0.225,0.5- 0.5V51.525h12.168c0.276,0,0.5-0.223,0.5-0.5v-5.302C95.482,45.446,95.259,45.223,94.982,45.223z/> < / svg>通过Google登录< / button>

I have the following JSFiddle where an SVG is placed on the left to some text inside a button. I would like the SVG to be inline with the text so that it is vertically positioned in the button.

I thought about using the following methods:

  • Using line-height though that does not appear to work.
  • Set a margin-top: however the whole content in the button moves down.

What can I do to align the SVG with the text? Thanks.

解决方案

If vertical-align doesn't provide subtle enough positioning for you, then you could try tweaking the icon's relative positioning using position: relative;.

.icon {
    ...
    position: relative;
    top: 0.15em;
}

If you use em values for the position, then that should allow the class to work for any font size.

    button {
        font-family:'Texta-Regular', sans-serif;
        font-size: 2.7em;
        line-height: 1.2em;
        display: block;
        margin: 2em auto;
        padding: .3em 2em;
        text-align: center;
        border: none;
        border-radius: 5px;
        -webkitborder-radius: 5px;
        outline: none;
        background-color: #dd4b39;
        color: #fff;
    }
    .icon {
        width: 1em;
        display: inline;
        margin-right: 40px;
        position: relative;
        top: 0.15em;
    }

<button>
    <svg version="1.1" fill="#fff" class="icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 96.828 96.827" xml:space="preserve">
        <path d="M62.617,0H39.525c-10.29,0-17.413,2.256-23.824,7.552c-5.042,4.35-8.051,10.672-8.051,16.912c0,9.614,7.33,19.831,20.913,19.831c1.306,0,2.752-0.134,4.028-0.253l-0.188,0.457c-0.546,1.308-1.063,2.542-1.063,4.468c0,3.75,1.809,6.063,3.558,8.298l0.22,0.283l-0.391,0.027c-5.609,0.384-16.049,1.1-23.675,5.787c-9.007,5.355-9.707,13.145-9.707,15.404c0,8.988,8.376,18.06,27.09,18.06c21.76,0,33.146-12.005,33.146-23.863c0.002-8.771-5.141-13.101-10.6-17.698l-4.605-3.582c-1.423-1.179-3.195-2.646-3.195-5.364c0-2.672,1.772-4.436,3.336-5.992l0.163-0.165c4.973-3.917,10.609-8.358,10.609-17.964c0-9.658-6.035-14.649-8.937-17.048h7.663c0.094,0,0.188-0.026,0.266-0.077l6.601-4.15c0.188-0.119,0.276-0.348,0.214-0.562C63.037,0.147,62.839,0,62.617,0z M34.614,91.535c-13.264,0-22.176-6.195-22.176-15.416c0-6.021,3.645-10.396,10.824-12.997c5.749-1.935,13.17-2.031,13.244-2.031c1.257,0,1.889,0,2.893,0.126c9.281,6.605,13.743,10.073,13.743,16.678C53.141,86.309,46.041,91.535,34.614,91.535z M34.489,40.756c-11.132,0-15.752-14.633-15.752-22.468c0-3.984,0.906-7.042,2.77-9.351c2.023-2.531,5.487-4.166,8.825-4.166c10.221,0,15.873,13.738,15.873,23.233c0,1.498,0,6.055-3.148,9.22C40.94,39.337,37.497,40.756,34.489,40.756z" />
        <path d="M94.982,45.223H82.814V33.098c0-0.276-0.225-0.5-0.5-0.5H77.08c-0.276,0-0.5,0.224-0.5,0.5v12.125H64.473c-0.276,0-0.5,0.224-0.5,0.5v5.304c0,0.275,0.224,0.5,0.5,0.5H76.58V63.73c0,0.275,0.224,0.5,0.5,0.5h5.234c0.275,0,0.5-0.225,0.5-0.5V51.525h12.168c0.276,0,0.5-0.223,0.5-0.5v-5.302C95.482,45.446,95.259,45.223,94.982,45.223z" />
    </svg>Sign In with Google</button>

这篇关于将SVG与文本内联对齐的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆