美文网首页
关于radio被挤压,display:flex布局设置flex:

关于radio被挤压,display:flex布局设置flex:

作者: teebox | 来源:发表于2021-11-08 11:00 被阅读0次

    关于radio被挤压,display:flex布局设置flex:none;flex-shrink:0之后,仍然无效的解决办法!全网都是错的,我这篇才是对的!

    咱废话不多说,我给您列列!

    网上那些错的文章!!全他妈是错的!

    【参考01】解决微信小程序的radio被挤压的效果

    https://blog.csdn.net/weixin_45579294/article/details/107461799

    !!!!!!!!!!!!错!!!!!!!!!!!

    【参考02】Flex 布局 元素被挤压的问题

    https://blog.csdn.net/Kotoba209_/article/details/104837259

    !!!!!!!!!!!!错!!!!!!!!!!!

    【参考003】flex-shrink: 0;看起来好像没起作用?请问这是为什么?- SegmentFault 思否

    https://segmentfault.com/q/1010000037560636?utm_source=tag-newest

    !!!!!!!!!!!!错!!!!!!!!!!!

    【参考004】内测版微信6.7.3:一元素设置flex-grow,同级元素会被挤压变形

    https://developers.weixin.qq.com/community/develop/doc/000064cff50bc03f23576e50351800?_at=1594455680252

    !!!!!!!!!!!!错!!!!!!!!!!!

                                                     radio单选框已经变形被挤压

    【官方文档】Flex布局的语法!

    http://http//www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool

    !!!!!!!!!!!!正确!!!!!!!!!!!

    然鹅,这只是语法而已,语法肯定是正确的,

    但是语法正确你的效果还不是正确的呢!!

    不信你就去试试吧,是不是很纳闷,所以,为毛呢?

    【正确的】我分3个步骤来和你说

    首先步骤一:

    我们定义一下html,像下面这样

    <view class="view-container">

        <radio-group class="radio-group" bindchange="onRadioChange">

          <label>第一题:</label>

          <label class="radio" wx:for="{{items}}" wx:key="item">

            <radio value="{{item.name}}" checked="{{item.checked}}">{{item.value}}</radio>

          </label>

        </radio-group>

    </view>

    这个没问题吧?

    我负责人的告诉你:你拿去问100个人,100个人都会告诉你,一眼看过去没什么问题!!!!!!对吧??!

    好的,请继续往下看!

    其次步骤二:

    我们定义下css,像下面这样

    .view-container{

      margin: 10px auto;

    }

    .radio-group{

      margin-top: 20px;

      border-bottom: 1px solid #333;

      padding-left: 5%;

      padding-bottom: 20px;

      padding-right: 5%;

    }

    .radio{

      background-color: yellow;

      box-sizing: border-box;

      margin-top: 5px;

      line-height: normal;

      display: flex;

      flex: none;

      flex-grow: 1;

      flex-shrink: 0px; /*防止被压缩*/

      flex-direction: row;

      align-items: center;

      word-break: break-all;

      justify-content: flex-start;

    }

    OK,到了这里,你也百度了一圈,你也看了Flex布局的官方文档

    你看到的主要解决办法就是下面三句:

    display: flex;

    flex: none;

    flex-shrink: 0px;

    对的,这三句没有任何问题,解决这个被挤压的问题也正是这三句!

    然鹅,我告诉你,你就贴上上面两个"完全正确”的html和css,并且你拿这两段html和css去问100个人,他们都会告诉你没毛病

    但是你编译一显示,它就是被挤压!!!

    被挤压!!被挤压!!被挤压!

    你是不是很气??!!

    你是不是被折磨的不行了??!

    你是不是恨不得说:去他妹的flex布局,我改用display:block!

    别慌,当一个事情用所有常理都解决不了的时候,你就需要反过来走走,用错试错,以毒攻毒。

    下面我告诉你问题出在哪里!

    最后步骤三:

    问题出在下面这一句:

    <radio value="{{item.name}}" checked="{{item.checked}}">{{item.value}}</radio>

    正确的写法是:

    <radio value="{{item.name}}" checked="{{item.checked}}"/>{{item.value}}

    就是这个问题!!

    我就是把微信小程序的<radio>当成<select>标签来用了

    这个<radio>标签就是<input type="radio"/>的做法!!

    OK,问题搞定!!

                                         radio单选框已经修复变形不会被挤压了

    @越秀金融大厦21楼

    @2021.11.08 星期一

    相关文章

      网友评论

          本文标题:关于radio被挤压,display:flex布局设置flex:

          本文链接:https://www.haomeiwen.com/subject/furuzltx.html