CSS3;保持标题宽度与图像相同

时间:2013-05-21 14:55:21

标签: width caption figure

我想让标题文字保持与图像相同的宽度(不设置一个固定宽度)。我试过玩等等,但这更难控制。

以下是CSS的示例。希望这是在这里提问的正确方法!

<head>
  <style type="text/css">
    <!--
        #floatrightphoto {
        float:right;
        padding: 6px;
        margin-left: 2px;
        margin-top: 3px;
        margin-bottom: 2px;
        margin-right: 0px;
        border-top-width: 1px;
        border-right-width: 1px;
        border-bottom-width: 1px;
        border-left-width: 1px;
        border-top-style: solid;
        border-right-style: solid;
        border-bottom-style: solid;
        border-left-style: solid;
        border-top-color: #CCEE77;
        border-right-color: #AFE165;
        border-bottom-color: #AFE165;
        border-left-color: #CCEE77;
        background-color: #CCFF99;
        }

        #floatrightphoto  p{
        font-weight: normal;
        color: #889260;
        float: left;
        margin-bottom: -3px;
        margin-top: 0px;
        margin-right: 1px;
        margin-left: 0px;
        text-align: right;
        font-family: "Comic Sans MS", Ariel;
        font-style: oblique;
        font-size: 14px;
        line-height: 16px;
        position: static;
        display: inherit;
        }
        body {
        width: 750px;
        }
        -->
  </style>
</head>
<body>
  <div id="floatrightphoto">
    <img src="somephoto" width="180" height="180">
      <br>
        <p>Caption Caption Caption Caption Caption Caption Caption
        Caption Caption</p>
      </br>
    </img>
  </div>
</body>

1 个答案:

答案 0 :(得分:0)

哇,这是一个额外的毛茸茸。我正在寻找相同的解决方案。

我遇到了这个解决方案(经过修改以反映您的需求):

#img-right{display: table; min-width: 1px; float:right; margin-left: 10px;}
#img-right p {display: table-caption; caption-side: bottom;}

然而,这适用于除IE之外的大多数浏览器,其中IE #img-right跨越标题的整个宽度(标题比图像本身长并且不包裹)。我仍然试图弄清楚如何使IE表现出来,因为它在其他浏览器中完美运行。

至于你的其他代码,我建议稍微简化它以减少加载时间。我稍微修改了你的CSS ...我建议将ID重命名为更小更容易阅读,请不要使用Comic Sans ... 永远。 < / strong>:)

body { width: 750px; }
#img-right {
        float:right;
        padding: 6px;
        margin: 3px 2px 2px 0px;
        border-top: 1px solid #ccee77;
        border-left: 1px solid #ccee77;
        border-bottom: 1px solid #afe165;
        border-right: 1px solid #afe165; 
        background: #ccff99;
        }

#img-right p{
        font: italic 14px/16px Helvetica, Arial, Lucida Sans, Verdana;  
        color: #889260;
        float: left;
        margin: 0px 0px -3px 1px;
        text-align: right;
        }