简短版本:
你知道有什么方法可以获得一个输入按钮(提交)和一个锚标签来使用CSS和没有Javascript直观地呈现相同的内容吗?
长版:
我正在开发一个ASP.NET MVC应用程序.该站点包含用于查看或创建或更新模型的详细信息的页面.页面操作包含在表单的底部,通常包括" 更新"和" 取消"或" 编辑"," 删除"和" 列表"(如果在详细信息视图页面上).该更新,编辑和删除行为从形式到服务器的数据发布,同时取消和列表动作是/可以由适当的GET请求处理.值得注意的是,我的设计目标之一是,如果Javascript被禁用,则启用Javascript时,网站的工作方式尽可能相同.我还希望UI元素在视觉上呈现相同的元素是否导致回发或触发GET请求.
为了使表单提交在没有Javascript的情况下工作,我想我必须使用提交按钮.我用CSS重写了按钮的视觉样式,使其呈现出与SO页面顶部的"按钮"非常相似 - 平面,纯色和纯文本.我希望生成GET请求的操作可以使用锚标记来处理,但是我在使用这些标记和样式化按钮进行相同渲染时遇到了问题.对齐和字体大小似乎存在问题.我能够让它们接近但不完全相同.
编辑: 使用按钮和锚点的样式差异包括无法使字体在相对于边界框内的基线的相同位置渲染,并使边界框本身呈现相对于容器的相同大小和对齐.无论我的调整如何,事情都只有几个像素.如果你能够让它工作,请告诉我.知道它可能会让我更容易继续尝试,直到我能够让它工作.
我试过的一件事是围绕一个按钮包裹GET动作,其形状类似于表单按钮.这在Firefox中很有用,但在IE7中却没有.单击IE7中的这样一个按钮并不会将点击返回到锚点.我现在想出的是使用与所需操作相关联的method ="GET"为GET创建一个新表单.我将它包装在一个提交按钮周围,该按钮具有一个onclick处理程序,location.href
该处理程序设置为所需操作的URL.这在视觉上呈现相同并且似乎有效,即使表单嵌套在另一种形式中也是如此.一个小问题是,如果Javascript被禁用,那么我的GET url包含一个?
最终,而不是你想要的漂亮的干净网址.
我想知道的是,是否有其他人以不同的方式解决了这个问题,以便更好地工作(并且可能需要更少的HTML)?你还有其他想法吗??
当Javascript关闭时,当请求作为帖子提交时,有什么方法可以修复GET URL吗?
详细信息视图中的示例代码.我意识到我可以(并且可以说应该)通过javascript添加onclick处理程序,但是当我内联时代码实际读取更好.我正在使用HtmlHelper扩展来生成下面的所有标记.我重新格式化它以提高可读性.
veggerby.. 10
您应该查看有关按钮标记样式的文章.它包括用于渲染两者和标签类似的CSS,并且还具有允许按钮中的图标的副作用.
您应该查看有关按钮标记样式的文章.它包括用于渲染两者和标签类似的CSS,并且还具有允许按钮中的图标的副作用.