我正在尝试在Umbraco中实现省略号,要求是15个字符的介绍文本,但总是以一个完整的单词结束.
我想过使用XSLT,但后来意识到我可以使用一个用C#编写的简单扩展方法.
我可以很容易地对文本进行子串并追加"......",但是我不得不用一个完整的单词来结束它.这是我的代码到目前为止(非常复杂:p)
public string Ellipsis(string text, int length)
{
return text.Substring(0, length) + "...";
}
Run Code Online (Sandbox Code Playgroud)
示例文本
Lorem ipsum dolor坐在amet,amet consectetur adipiscing elit.
如果我们实现上面的省略号方法(长度= 15),输出看起来像
Lorem ipsum dolor sit amet,amet consectetur adipi ...
我想确保没有任何单词被切片,所以输出应该是这样的
Lorem ipsum dolor坐在amet,amet consectetur adipiscing ...
任何帮助赞赏.
编辑
运行下面代码的示例后,如果省略号长度在最后一个单词上结束,则根本不显示任何文本.
这是输出,见第56-60行
0 : Lorem...
1 : Lorem...
2 : Lorem...
3 : Lorem...
4 : Lorem...
5 : Lorem...
6 : Lorem ipsum...
7 : Lorem ipsum...
8 : Lorem ipsum...
9 : Lorem ipsum...
10 : …Run Code Online (Sandbox Code Playgroud) 有人在Internet Explorer 9上运行测试以运行3D CSS变换吗?如果是这样,他们是否成功了?
我找不到任何关于它的信息,当然Chrome/Safari/Firefox已经添加了对它的支持:)
一些邪恶的新3D CSS语法
translate3d(x,y,z),translateZ(z)
在x,y和z中移动元素,然后只在z中移动元素.正z面向观众.与x和y不同,z值不能是百分比.
scale3d(sx,sy,sz),scaleZ(sz)
缩放x,y和z中的元素.z比例影响转换子项中沿z轴的缩放.
rotateX(角度),rotateY(角度),rotate3d(x,y,z,角度),
前两个表单只是围绕水平轴和垂直轴旋转元素.角度单位可以是度(度)弧度(弧度)或梯度(grad).最后一种形式允许您围绕3D空间中的任意向量旋转元素; x,y和z应指定您想要旋转的单位矢量(我们将为您标准化).
perspective(p)
此函数允许您将一些透视放入转换矩阵.有关p的解释,请参见下文.通常透视是通过-webkit-perspective属性应用的,但是此函数允许您为单个元素获取透视效果,例如:
-webkit-transform: perspective(500px) rotateY(20deg);
Run Code Online (Sandbox Code Playgroud)
matrix3d(...)
此函数允许您以列为主的顺序指定16个值的原始4×4齐次变换矩阵.玩得开心!
取自这里.
我知道这已被问过,但我仍然感到困惑.
我正在尝试为iPhone构建一个简单易用的页面:顶部的徽标,电话号码,地址以及占据整个屏幕的BG(不重复).
当我运行一个打印screenwidth和screenheight的脚本时,我得到了:320px*480px.
但是,当我创建这些精确尺寸的div时,它很小.是什么赋予了?如果检测到的分辨率的整个大小的盒子不占用整个屏幕吗?
所以,如果我正在为iPhone设计一个页面,我希望它能在Safari(在iPhone上)占据整个屏幕,我应该为它设计什么样的分辨率呢?
我正在使用运行iOS 4.0的iPhone 3G作为我的测试设备.
谢谢你的帮助.
我正在研究Umbraco XSL样式表,我很困惑.
基本上,我有一个参数,我测试并使用它的值,如果它存在,否则我使用默认参数$currentPage.
这是参数
<xsl:param name="source" select="/macro/sourceId" />
<xsl:param name="currentPage" />
Run Code Online (Sandbox Code Playgroud)
这是变量
<xsl:variable name="current">
<xsl:choose>
<xsl:when test="$source > 0">
<xsl:copy-of select="umbraco.library:GetXmlNodeById($source)" />
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$currentPage" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
这就是我使用它的地方
<xsl:for-each select="msxml:node-set($source)/ancestor-or-self::* [@isDoc and @level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">
... code here ...
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
这有效
<xsl:variable name="source" select="$currentPage" />
Run Code Online (Sandbox Code Playgroud)
事实并非如此
<xsl:variable name="source">
<xsl:copy-of select="$currentPage" /> <!-- Have tried using <xsl:value-of /> as well -->
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)
那么如何在不使用select=""属性的情况下复制变量.
更新:我尝试过使用另一种方法(见下文),但我得到一个超出范围异常的变量.
<xsl:choose> …Run Code Online (Sandbox Code Playgroud) 给定div已知尺寸,比如说width: 300px; height: 200px,将屏幕垂直和水平放置在屏幕中间的最简单方法是什么?这里的例子
我对最新的Firefox感兴趣(不需要IE黑客).
只有CSS,没有Javascript.
我有一个textarea,我想检查光标是在开始还是在结束(我不需要当前的位置).
有人知道一个简单的jQuery解决方案吗?
提前致谢!
彼得
我决定开始编写一个iPhone应用程序并来自ac #background,我以为我会开始使用mono来开发它.
虽然这个问题可能是主观的,但我很乐意为您提供一些指导.
使用这种技术开发我的应用程序是安全的,还是应该购买一些书籍并开始学习目标C?
我知道Adobe将发布一个允许你使用Flash CS5构建iPhone应用程序的功能,但这并没有持续多久.
感谢您的反馈.
马尔科
我正在尝试实现一个.NET自定义验证器,它使用$ .ajax在同一页面上查询WebMethod并返回一个布尔值来指示结果是true还是false.
我使用的WebMethod非常简单
[WebMethod()]
public static bool IsPromoValid(string code)
{
string promoCode = "ABCDEFG";
bool result = code.ToLower() == promoCode.ToLower();
return result;
}
Run Code Online (Sandbox Code Playgroud)
CustomValidator看起来像这样
<asp:CustomValidator ID="cvPromoCode" Display="None" ControlToValidate="txtPromoCode" runat="server" ClientValidationFunction="validatePromo"
ErrorMessage="The promo code you entered is incorrect" OnServerValidate="ValidatePromoCode" />
Run Code Online (Sandbox Code Playgroud)
和简单的$ .ajax()ClientValidation函数
function validatePromo(src, args) {
$.ajax({
type: "POST",
url: "Register.aspx/IsPromoValid",
data: "{'code': '" + args.Value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
args.IsValid = msg.d;
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题是页面立即验证,实际上并没有等待ajax调用完成.如果页面上有任何其他错误,它会显示验证摘要,但从不显示自定义验证程序的错误消息.
我可以看到在Firebug中进行的AJAX调用,它会重新响应正确的响应(在这种情况下为true或 …
我MFMailComposeViewController在iOS中使用它来创建新的动态电子邮件,但在尝试使用内联图像时遇到了问题.
我首先尝试将图像添加为base64编码的字符串,即
<img src="data:image/png;base64, blahblahblah" />
Run Code Online (Sandbox Code Playgroud)
但我只能在iPad上查看,而Outlook/Entourage会忽略它,即使我可以在源代码中看到它!
所以现在我正在尝试将图像添加为附件并通过其内容ID链接到它,即
<img src="cid:BF6E8B41-4D74-419E-B55E-8F18A07381AE" id="BF6E8B41-4D74-419E-B55E-8F18A07381AE" width="509" height="220">
Run Code Online (Sandbox Code Playgroud)
但是不知道如何获得cid通过代码!
当我使用附加图像时AddAttachmentData,图像会到达底部并实际生成<img />带有cid 的标签!
此外,此ID似乎随每个新电子邮件而变化.上面的那个是我的第一次尝试,然后我发送了另一个并且Content-ID改为
<img src="cid:59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" id="59EBFDED-2A31-4787-BF67-9D9ED0FF2B39" width="509" height="220">
Run Code Online (Sandbox Code Playgroud)
我必须这样做的原因是因为这是一个动态生成的图像,它需要位于电子邮件模板中.
编辑
我开始认为这是不可能的.我一直在研究几个小时,看起来iOS不会让你附加图像并通过它的CID链接到它.谢谢Apple -_-
我想用一系列具有相同字符数的重复字符替换XML标签.
例如:
<o:LastSaved>2013-01-21T21:15:00Z</o:LastSaved>
Run Code Online (Sandbox Code Playgroud)
我想用以下代替:
#############2013-01-21T21:15:00Z##############
Run Code Online (Sandbox Code Playgroud)
我们如何使用RegEx呢?